Django模型form.save()不保存

时间:2015-05-04 22:01:10

标签: python django forms

我试图创建一个页面,我可以在其中编辑我的文章作为经过身份验证的用户,但是当调用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()没有保存?任何帮助都会有所帮助。

2 个答案:

答案 0 :(得分:0)

尝试form.save(commit = True),可能会有效

答案 1 :(得分:-2)

您应该保存Model而不是Form。这是Django Forms的一个常见错误