小编Mik*_*nik的帖子

如何在 django 中将多对多字段设置为空白 = True

我是 django rest 的新手,今天遇到了一些麻烦:假设我们有两个模型:

class Tags(models.Model):
    tag_text = models.CharField(name='tag', max_length=30)
Run Code Online (Sandbox Code Playgroud)

class Entries(models.Model):
    entry_header = models.CharField(name='header', max_length=30)
    pub_date = models.DateTimeField(auto_now_add=True)
    entry_text = models.TextField(blank=True, null=True)
    entry_tags = models.ManyToManyField(Tags, related_name='entries', blank=True)
Run Code Online (Sandbox Code Playgroud)

我可以为条目模型设置空白属性,但很难对标签执行相同的操作。这样当我尝试类似的事情时

http --json POST http://127.0.0.1:8000/tags/ tag_text="tag with no entry"
Run Code Online (Sandbox Code Playgroud)

它返回我

"entries": [ This field is required ]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,有什么方法可以创建带有空白“条目”字段的标签对象?

先感谢您!


...请注意

http --json POST http://127.0.0.1:8000/entries/ header="entry with no tags"
Run Code Online (Sandbox Code Playgroud)

给出想要的回应

在这种情况下,来自 rest_framework 的序列化程序也非常简单:

class EntriesSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Entries
        fields = ('url', 'header', 'entry_text', 'pub_date', 'entry_tags')

class TagsSerializer(serializers.HyperlinkedModelSerializer):
    class …
Run Code Online (Sandbox Code Playgroud)

python django many-to-many django-models django-rest-framework

6
推荐指数
1
解决办法
2671
查看次数