在django中访问模板中的模型属性

时间:2017-09-12 15:58:22

标签: django forms

这是我的django app.i的views.py的片段,它使用了modelform来创建表单。 models.py有一个具有attibute用户名的类用户。我想将注册页面重定向到视图“重定向”,但我还想传递在我们点击表单上的提交按钮后获得的用户名,数据存储在实例'new_form'中。

def registration(request):
    if request.method=='POST':
        form=userForm(request.POST)
        if form.is_valid():
            name=form.cleaned_data['username']
            new_form=form.save()

            return HttpResponseRedirect(reverse('redirect'))
    else:
        form=userForm()
    return render(request,'student/registration.html',{'form':form})

我的redirect.html看起来像这样。

<h1>You have signed up.</h1>
<p>hello {{field.name}}</p>

但问题是hello之后没有显示名称,这是显而易见的,因为我没有通过reverse('redirect')传递任何东西。那我该怎么做?我的redirect.html也有问题吗?

2 个答案:

答案 0 :(得分:2)

而不是return HttpResponseRedirect(reverse('redirect'))

使用return render(request, 'redirect.html', {'name': name})

并修改redirect.html

<h1>You have signed up.</h1>
<p>hello {{name}}</p>

希望这有帮助。

答案 1 :(得分:1)

制作一个上下文字典并发送。

def registration(request):
    context ={}
    if request.method=='POST':
        form=userForm(request.POST)
        if form.is_valid():
            name=form.cleaned_data['username']
            context['name']=name
            new_form=form.save()

            return render(request,'student/registration.html',context)
    else:
        form=userForm()
        context['form']=form
    return render(request,'student/registration.html',context)

现在 html

<h1>You have signed up.</h1>
<p>hello {{name}}</p>
相关问题