当DRF没有为模型类/引用表(特别是主键)正确显示所有字段时,我遇到了一个问题。
我的模型类如下(非常简单):
class UnitOfIssue(models.Model):
code = models.CharField(max_length=2, primary_key=True)
description = models.CharField(max_length=16)
class Meta:
ordering = ('code',)
def __str__(self):
return "{0} - {1}".format(self.code, self.description)
我的序列化程序如下所示:
class UnitOfIssueSerializer(serializers.HyperlinkedModelSerializer):
"""
"""
url = serializers.HyperlinkedIdentityField(
read_only=True,
view_name='unitofissue-detail',
format='html',
lookup_field='code')
class Meta:
model = UnitOfIssue
fields = ('code', 'description', 'url')
# fields = '__all__'
我使用的是一个通用视图:
class UnitOfIssueDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = UnitOfIssue.objects.all()
serializer_class = UnitOfIssueSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
lookup_field = 'code'
为了
UnitOfIssue
主键
code
要在自动生成的UI中显示,我必须定义
fields = ('code', 'description', 'url')
在序列化程序中而不是
fields = '__all__'
.
我只想能够使用
'__all__'
语法,但我不知道出了什么问题。
另外,我使用Django==1.11.13和djangorestframework==3.8.2