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






Эта проблема мучила меня несколько недель, и все же это была такая простая ошибка. Я исправил это, изменив базовый класс сериализатора с:
class UnitOfIssueSerializer(serializers.HyperlinkedModelSerializer):
к:
class UnitOfIssueSerializer(serializers.ModelSerializer):
сообщение об ошибке ??