【发布时间】:2012-06-06 17:08:24
【问题描述】:
我的意见.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)
在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()
}
如您所见,我正在使用带有两个额外 Django 表单字段的 Django 模型表单,即 AddressCreateForm 类中的 Address and value。我在渲染模板时需要所有字段。
确实some_views 方法工作正常,但我还想将一些用context_dictionary 即user_list 写入的额外数据呈现给请求URL 即address_create.get_absolute_url()。
如果我没记错的话,如果我们正在处理数据库,我们必须使用redirect_to 方法。有可能吗?
【问题讨论】:
-
你到底想做什么? extra_context 应该是做什么用的?为什么重定向需要任何类型的上下文?
-
@DanielRoseman 我正在尝试将带有网络模型字段的 uesr_list 变量(它是一个列表数据类型)传递给模板。在基于 Address 和 ip_value 字段进行一些计算后,我得到了这个 user_list。如果我这样做了,那么我无法将 user_list 变量渲染到模板
-
-1 表示“什么”。我在问诀窍。这个问题有问题吗
-
什么模板?您正在重定向,而不是呈现模板。
标签: django django-forms django-templates django-views