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_linkpropiedad.
¿Cómo puedo serializar la ext_linkpropiedad?
django-rest-framework
Sander Smits
fuente
fuente

fields, en el ejemplo anterior, obtendría todos losMyModelcampos másext_linken 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 Townleyel comentario de, esto funciona con la versión3.8.2:fuente