django-当视图需要一个参数时,表单操作参数中包含了什么?
这就是我所拥有的:django-当视图需要一个参数时,表单操作参数中包含了什么?,django,django-templates,django-forms,django-views,Django,Django Templates,Django Forms,Django Views,这就是我所拥有的: myview.py,该视图包含一个参数user: def myview(request, user): form = MyForm(request.POST) .... return render_to_response('template.html',locals(), context_instance=RequestContext(request)) 用户通过url传递 url.py: ... urlpatterns += patterns('myv
myview.py
,该视图包含一个参数user
:
def myview(request, user):
form = MyForm(request.POST)
....
return render_to_response('template.html',locals(), context_instance=RequestContext(request))
用户
通过url传递
url.py
:
...
urlpatterns += patterns('myview.views',
(r'^(?P<user>\w+)/', 'myview'),
)
...
如果myview
函数需要一个参数,那么动作参数的形式是什么
现在我有
action=“.”
。我问这个问题的原因是,当我在(templates.html)中填写表单并单击submit按钮时,我完全没有看到从该表单传递的字段值。当我单击submit按钮时,几乎就像我在传递一个空表单。有什么想法吗?谢谢大家! 它不需要任何东西。假设您位于以下url:
www.yoursite.com/users/johnsmith/
您的表格应为:
<form name="form" method="post" action="">
如果要显式设置操作,假设模板中有变量username
<form name="form" method="post" action="{% url myview.views username %}">
或者,您可以在url.py中为url指定一个名称,这样您就可以像这样引用它:
# urls.py
urlpatterns += patterns('myview.views',
url(r'^(?P<user>\w+)/', 'myview', name='myurl'), # I can't think of a better name
)
# template.html
<form name="form" method="post" action="{% url myurl username %}">
#url.py
urlpatterns+=模式('myview.views',
url(r'^(?P\w+/),'myview',name='myurl'),#我想不出更好的名字了
)
#template.html
您正在发布到与表单相同的视图。因此,首先,视图被调用并服务于表单。发布表单时,将调用相同的视图,但这次您将处理表单。这就是为什么这个动作是空的 您可以使用request.path
,这在大多数情况下都有效 我来调查一下。有道理。谢谢你的回复。如果是这样的话,我应该做些什么来避免它?去掉行动中的圆点。“.”。然后表单将发布到同一视图并进行处理。你想避免什么?如果您想发布到另一个视图,可以将路径设置为活动路径,而不是将其保留为空。如果操作属性为空,某些浏览器(例如,最近的Chrome版本)将无法发布。@shacker maybeaction=“。”
足以解决Chrome的问题吗?使用URL模板标记,您需要在URL周围有'
作为:{%URL'myurl'参数\u to_pass%}
<form name="form" method="post" action="{% url myview.views username %}">
# urls.py
urlpatterns += patterns('myview.views',
url(r'^(?P<user>\w+)/', 'myview', name='myurl'), # I can't think of a better name
)
# template.html
<form name="form" method="post" action="{% url myurl username %}">