我不知道如何在同一视图中返回表单和context_dict
我的观点:
def myview(request):
context_dict = {}
u = request.user
context_dict['user'] = u
...
form = form.myformForm()
#return render(request, 'mytemplate.html', context_dict)
return render(request, 'mytemplate.html', {'form': form })
此外,我需要在基本模板中使用context_dict(对于导航栏),所以我希望以这种格式访问上下文,如果可能的话,没有其他前缀/路径:
{{ user.username }}
答案 0 :(得分:1)
这是一个非常简单的表单视图,可能有助于作为模板:
def simpleView(request):
if request.method == "POST":
myform = MyForm(request.POST)
if myform.is_valid():
#process form data
pass
else:
# process form errors
pass
else:
myform = MyForm()
return render(request, "template.html", {"form": myform})
此外,您不应该通过上下文字典传递用户,我相信您可以执行{% request.user.username %}
要直接回答问题,我不知道如何在同一视图中返回表单和context_dict,您只需将表单与所有数据一起放入上下文字典中即可你投入了。
上面视图中的if request.method == "POST
语句表示该视图可以处理GET和POST请求。加载页面时的GET请求,以及有人在该页面上提交表单时的POST请求。
通过使用Django中的messaging
功能,向用户提供有关表单处理状态的反馈的简洁方法。
您可以通过以下方式在网页上向用户发送消息:
messages.error(request, "some message here")
(其中错误可能是success
或其他一种消息类型)。
然后,您可以非常轻松地在模板中访问和显示它们:
{% if messages %}
{% for message in messages %}
# DISPLAY USING HTML OR SOMETHING HERE
{% endfor %}
{% endif %}
可能有更好的方法来进行消息处理,但这只是我发现的一种看起来非常整洁的方式!