【发布时间】:2011-08-25 13:04:01
【问题描述】:
我想在我的菜单中放置一个表格,以便能够选择一个项目、保留此信息并能够在站点中随时更改它。我正在使用 context_processor 来实现它并(尝试)使用会话变量来保存信息。
但是我遇到了一个问题。该表单包含在基本模板中,该基本模板包含在所有其他模板中。这些其他模板中的一些还包含一个表单,显然菜单表单和其他模板之间存在某种冲突。例如,当我尝试验证视图表单时,它告诉我菜单表单字段未填写,它不应该关心它。
我尝试放置一个不同的操作 url,但没有任何效果。
我想要做的甚至可能吗?如果是这样,我该如何避免冲突?
菜单的表单在 context_processor 中调用,调用它的函数的代码:
def display_select_proj(request):
if request.method == "POST":
form = SelectForm(request.POST)
if form.is_valid():
proj = form.save()
request.session['proj'] = proj
else:
form = SelectForm()
proj = ""
return {'select_form': form}
我将display_select_proj 添加到TEMPLATE_CONTEXT_PROCESSORS,最后在基本模板中使用{{ select_form }} 显示它
【问题讨论】:
-
您的问题令人困惑。但是,首先是发布导致问题的代码以及您看到的错误消息。
-
我在我的问题中添加了一些代码,但我没有具体的错误。我只是无法验证我的表单,而无需填写视图中包含的表单。这是一个问题,因为我真的希望菜单是独立的
-
你的模板怎么样?和你的视图代码?
-
这对我来说似乎并不令人困惑。基本上,它们有一个通过上下文处理器生成的表单(“菜单表单”)和另一个由页面的视图函数生成的表单(“视图表单”),并且菜单表单阻止了视图表单的验证。
-
是的,这正是@Mike 所描述的。我真的不能放更多有用的代码..
标签: django forms django-forms validation