Django ManyToManyField

时间:2011-02-06 07:47:10

标签: python django

在我的模特中,我有:

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

我正在尝试创建Poll对象并存储标签,如下所示:

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 个答案:

答案 0 :(得分: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()

答案 1 :(得分:3)

我发现您正在尝试构建自己的标记系统,但我认为如果您查看已有的标记系统可能会有所帮助。

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

我在我的应用程序中使用它,它有一个很棒的api来启动。