我强烈怀疑这归结为我需要更好地理解一些语言结构,但我不知道从哪里开始,所以我只需要扔掉一些代码。
楷模:
class BlogTag(models.Model):
tag = models.CharField(max_length=255)
def __unicode__(self):
return self.tag
class BlogEntry(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
date = models.DateTimeField()
tags = models.ManyToManyField(BlogTag)
def __unicode__(self):
return self.title
形式:
class BlogForm(ModelForm):
class Meta:
model = BlogEntry
看法:
title='New Blog Entry'
if request.method=='POST':
form=BlogForm(request.POST)
if form.is_valid():
cd=form.cleaned_data
blogEntry=BlogEntry(**cd)
blogEntry.save()
else:
form=BlogForm();
return render_to_response('blog_add.html', locals())
通过使用**cd,我能够将清理后的数据直接放入我的对象中,这显然是可取的,因为这样视图与其他对象松散耦合——我可以更改模型,而其他一切都随着它而改变,而无需我不得不做一件事。
不幸的是,我收到一个错误:
'tags' is an invalid keyword argument for this function
我总是可以分解 CD 并构建 blogEntry=BlogEntry(title=cd['title']...) 的手动字典方法,然后一个一个添加标签,但是...我应该有更好的选择除此之外,我只是不知道它们是什么:(