Ich versuche, ein Modell zu serialisieren, das ein Eigenschaftsfeld enthält, das ich auch serialisieren möchte.
models.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')
Beim Versuch, zur zugehörigen URL zu gelangen, wird eine Serializer-Ausnahme (KeyError) für die ext_link
Eigenschaft angezeigt .
Wie kann ich die ext_link
Eigenschaft serialisieren ?
django-rest-framework
Sander Smits
quelle
quelle
fields
im obigen Beispielweglassen, erhalten Sie alleMyModel
Felder plusext_link
in den serialisierten Daten. Und das ist wirklich großartig für komplexe Modelle! EDIT : Zumindest gilt dies fürdjangorestframework==2.3.14
.fields = "__all__"
Ich musste auchmyfield = serializers.ReadOnlyField()
als Jarmod angegeben hinzufügen , mit Version 3.7.7als
@Robert Townley
Kommentar funktioniert diese mit Version3.8.2
:quelle