我有一个问题,即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'
为了在自动生成的UI中显示UnitOfIssue
主键code
,我必须在序列化程序中定义fields = ('code', 'description', 'url')
,而不是fields = '__all__'
。 / p>
我只想使用'__all__'
语法,但我不知道出了什么问题。
此外,我正在使用Django == 1.11.13和djangorestframework == 3.8.2
答案 0 :(得分:0)
这个问题困扰了我数周,但那是一个简单的错误。我通过更改以下内容的序列化器基类来解决此问题:
class UnitOfIssueSerializer(serializers.HyperlinkedModelSerializer):
至:
class UnitOfIssueSerializer(serializers.ModelSerializer):