Ami*_*Pal 0 django django-templates django-forms django-views
我的意见.py:
@login_required
def some_views(request):
if request.method == 'POST':
form = AddressCreateFrom(request.POST)
if form.is_valid():
name = form.cleaned_data['Address']
ip_value = form.cleaned_data['value']
user_list = get_username(name)
address_create = form.save()
extra_context = {
'user_list': user_list
}
return redirect_to(request, url=address_create.get_absolute_url())
else:
form = AddressCreateFrom()
extra_context = {
'form':AddressCreateFrom(initial={'user': request.user.pk})
}
return direct_to_template(request,'networks/user_form.html',extra_context)
Run Code Online (Sandbox Code Playgroud)
在form.py中:
class AddressCreateFrom(forms.ModelForm):
Address = forms.CharField(max_length=40)
value = forms.CharField(max_length=40)
class Meta:
model = Network
widgets = {
'user': forms.HiddenInput()
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我Address and value
在AddressCreateForm
课堂上使用带有两个额外 Django 表单字段的 Django 模型表单。我在渲染模板时需要所有字段。
确实some_views
方法工作正常,但我也想呈现一些额外的数据写入context_dictionary
ieuser_list
到一个请求URL
ie address_create.get_absolute_url()
。
如果我没有错,如果我们正在处理数据库,我们必须使用redirect_to
方法。有可能这样做吗?
重定向将返回带有状态代码 301 或 302 的 HTTP 响应,以及要重定向到的位置:
301 MOVED PERMANENTLY
Location: http://www.example.com/new-url/
Run Code Online (Sandbox Code Playgroud)
原始视图没有渲染模板,因此您无法传递extra_context
给它。
用户的浏览器通常会跟随重定向,并请求新的 URL。
如果要在下一个视图中显示有关特定用户的信息,则必须执行以下操作:
/users/200/
,/users/?id=200
,然后从request.GET
视图中获取用户 ID 。然后在您重定向到的视图中,您可以从数据库中获取用户,并将其添加到模板上下文中。
归档时间: |
|
查看次数: |
2736 次 |
最近记录: |