我是django的新手,并且陷入了一个非常基本的层面。 我想创建一个存储用户发布的文章的模型。在模型中,我能够保存我的文章但是如何在该模型中保存用户ID。 提交此表单时,仅保存标题和正文。
我的models.py文件如下:
class Article(models.Model):
Title = models.CharField(max_length=169)
Body = models.TextField()
Author_id = models.CharField(max_length=3)
def __unicode__(self):
return self.Title
我的forms.py如下:
class AddArticle(forms.ModelForm):
class Meta:
model = Article
fields = ('Title', 'Body')
和我的views.py是:
def UploadArticle(request):
if request.POST:
form = AddArticle(request.POST)
if form.is_valid():
Article.Author_id = request.user.id #I guess my mistake lies here, but how to avoid it
form.save()
return HttpResponseRedirect('/articles/all')
else:
form = AddArticle()
args = {}
args.update(csrf(request))
args['form']=AddArticle()
return render_to_response('add.html', args)
请帮助
答案 0 :(得分:1)
更改
Author_id = models.CharField(max_length=3)
至
Author = models.ForeignKey(User)
然后执行dm03514的建议
答案 1 :(得分:0)
首先获取文章实例,commit explained in docs
article = form.save(commit=False)
然后分配作者
article.Author = request.user
创建“作者”字段将自动在表格中创建Author_id字段。我想如果你创建名为Author_id的字段,它可以创建一个Author_Id_id字段吗?在某些方面使用对象更安全,即用户'实例然后它是使用整数,即user.id
article.save()