2011-02-06 84 views
4

在我的模型,我有:Django的ManyToManyField

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() 

回答

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() 
3

我看到你正在试图建立自己的标签系统,但我认为它可能如果你看一下已经存在的一个,可以帮助你。

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

我用我的应用程序,它有一个真棒API来启动。