У меня проблема, когда 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
отображался в автоматически сгенерированном пользовательском интерфейсе, я должен определить fields = ('code', 'description', 'url')
в сериализаторе вместо fields = '__all__'
.
Я хочу просто использовать синтаксис '__all__'
, но не могу понять, что происходит не так.
Кроме того, я использую Django==1.11.13 и djangorestframework==3.8.2.