Django在反向重定向中使用新创建的对象

jla*_*rry 2 forms django reverse modelform

我试图从新创建的项目对象中提取id,以便我可以将用户重定向到包含新项目的页面.现在我得到''ProjectAddForm'对象没有属性'id'".

我在网上看到这应该有用,但出于某种原因,它不是.

if request.method == 'POST':
        form = ProjectAddForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('project.views.detail', args=(form.id)))
Run Code Online (Sandbox Code Playgroud)

Forms.py

class ProjectAddForm(forms.ModelForm):

    class Meta:
        model = Project
Run Code Online (Sandbox Code Playgroud)

Joe*_*way 6

save方法返回您的模型对象.获取对它的引用,然后您将获得反向重定向所需的"id".

instance = form.save()
return HttpResponseRedirect(reverse('project.views.detail', instance.id))
Run Code Online (Sandbox Code Playgroud)