Estou tentando serializar um modelo que contém um campo de propriedade que também desejo serializar.
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')
Ao tentar obter o URL relacionado, recebo uma exceção do serializador (KeyError) na ext_link
propriedade.
Como posso serializar a ext_link
propriedade?
django-rest-framework
Sander Smits
fonte
fonte
fields
, no exemplo acima, obterá todos osMyModel
campos maisext_link
os dados serializados. E isso é realmente incrível para modelos complexos! EDIT : Pelo menos, isso é verdade paradjangorestframework==2.3.14
.fields = "__all__"
eu também tive que adicionarmyfield = serializers.ReadOnlyField()
como jarmod especificado, usando a versão 3.7.7como
@Robert Townley
comentário de, funciona com a versão3.8.2
:fonte