我试图创建一个页面,我可以在其中编辑我的文章作为经过身份验证的用户,但是当调用form.save()时,没有保存任何内容。
这是代码
views.py
@login_required
def edit(request, id=None, template_name='article_edit.html'):
if id:
article = get_object_or_404(Article, pk=id)
if article.user != request.user:
return HttpResponseForbidden()
else:
article = Article(user=request.user)
if request.POST:
form = ArticleForm(request.POST, instance=article)
if form.is_valid():
save_it = form.save(commit=False)
save_it.save()
form.save_m2m()
return HttpResponseRedirect("/")
else:
form = ArticleForm(instance=article)
context = {'form': form}
populateContext(request, context)
return render(request, template_name, context)
models.py
class Article(models.Model):
user = models.ForeignKey(User)
titre = models.CharField(max_length=100, unique=True)
summary = RichTextField(null=True, max_length=140)
contenu = RichTextField(null=True)
def __str__(self):
return self.titre
forms.py
class ArticleForm(forms.ModelForm):
class Meta:
model = Article
exclude = ['user']
form = ArticleForm()
有什么问题,为什么form.save()没有保存?任何帮助都会有所帮助。
答案 0 :(得分:0)
尝试form.save(commit = True),可能会有效
答案 1 :(得分:-2)
您应该保存Model
而不是Form
。这是Django Forms的一个常见错误