Django 多对多字段

4 投票
2 回答
7157 浏览
提问于 2025-04-16 11:19

在我的模型中,我有:

class Poll(models.Model):
    topic = models.CharField(max_length=200)
    tags = models.ManyToManyField(Tag)

我正在尝试创建一个投票对象,并像这样存储标签:

Tags = []
for splitTag in splitTags:
    tag = Tag(name = splitTag.lower())
    tag.save()
    Tags.append(tag)

我该如何设置 Tags 数组并将其分配给 tags 呢?

我试过:

    poll = Poll(topic=topic, tags = Tags)
    poll.save()

2 个回答

3

我看到你在尝试自己建立一个标签系统,但我觉得你可以看看已经存在的标签系统,这样可能会对你有帮助。

http://code.google.com/p/django-tagging/

我在我的应用中使用这个,它的接口非常棒。

12

嗯,应该更像这样:

models.py

class Tag(models.Model):
    name = models.CharField(max_length=200)

class Poll(models.Model):
    topic = models.CharField(max_length=200)
    tags = models.ManyToManyField(Tag)

in views.py:

poll = Poll(topic="My topic")
poll.save()
for splitTag in splitTags:
    tag = Tag(name = splitTag.lower())
    tag.save()
    poll.tags.add(tag)
poll.save()

撰写回答