Отношения Джанго - Foreingkey требуют поля - PullRequest
1 голос
/ 11 июня 2019

У меня есть следующие отношения Foreignkey между двумя моделями:

class Text(models.Model):
    textcontent = models.CharField(max_length=100)


class Comment(models.Model):
    text = models.ForeignKey(ModelA,
                               on_delete=models.CASCADE,
                               null=True,
                               blank=True)
    commentContent = models.CharField(max_length=100)

Таким образом, текст может иметь несколько комментариев, но комментарий назначается только одному тексту. В serializers.py у меня есть следующее:

class TextSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Text
        fields = ('url',
                  'id',
                  'comment_set'
                  )

Как видите, я хочу показать также набор комментариев, принадлежащих одному тексту, через 'comment_set'. Но когда я создаю текстовый экземпляр (без предоставления комментариев), я получаю следующее в командной строке:

"comment_set": [ "Это поле обязательно к заполнению." ]

Почему это требуется? Я установил пустые и нулевые аргументы в True. Как я могу решить это?

1 Ответ

0 голосов
/ 11 июня 2019

Вы можете установить read_only_fields - [DRF-Doc] в мета-классе, как

class TextSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Text
        fields = ('url', 'id', 'comment_set')
        <b>read_only_fields = ('comment_set',)</b>
...