Estoy tratando de serializar un modelo que contiene un campo de propiedad que también quiero serializar.
modelos.py:
class MyModel(models.Model):
name = models.CharField(max_length=100)
slug = models.AutoSlugField(populate_from='name')
@property
def ext_link(self):
return "/".join([settings.EXT_BASE_URL, self.slug])
serializers.py:
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('name', 'ext_link')
Cuando intento acceder a la URL relacionada, obtengo una excepción de serializador (KeyError) en la ext_link
propiedad.
¿Cómo puedo serializar la ext_link
propiedad?
django-rest-framework
Sander Smits
fuente
fuente
fields
, en el ejemplo anterior, obtendría todos losMyModel
campos másext_link
en los datos serializados. ¡Y esto es realmente asombroso para modelos complejos! EDITAR : Al menos, esto es cierto paradjangorestframework==2.3.14
.fields = "__all__"
también tuve que agregarmyfield = serializers.ReadOnlyField()
como jarmod especificado, usando la versión 3.7.7como
@Robert Townley
el comentario de, esto funciona con la versión3.8.2
:fuente