在 Django1.6 中,有没有办法将动态参数传递给我的视图或URL而无需解析URL?
理想情况下,我想要一个看起来像的urls.py:
url(r'^dash/$',
dash_view.account_modify,
{'account': **dynamic_account_identifier_here**}
name='dash_account_modiy')
在views.py中:
def account_modify(request, account,
template_name='profile.html,
change_form=AccountModifyForm):
...
:param帐户:
来自模特:
class Dash(models.Model):
name = models.Charfield()
account = models.IntegerField()
....
基本上,我真的想避免使用帐户标识符作为字符串一部分的urls.py,例如:
url(r'^dash/(?P<account>\w+)/$',
dash_view.account_modify,
name='dash_account_modiy')
有关如何将这些值从模板传递到处理视图以便在AccountModifyForm(期望'account'参数)中使用的任何建议?
答案 0 :(得分:3)
url(r'^dash/$',
dash_view.account_modify,
{'account': **dynamic_account_identifier_here**}
name='dash_account_modify')
您无法动态评估其中的任何内容,因为在加载URL conf时,只会对字典进行一次评估。
如果您想将信息从一个视图传递到另一个视图,则有三个选项:
答案 1 :(得分:1)
如果有人关心......想出来......
在模板中:
{% for dash in dashes %}
blah blah blah
<form action="..." method="POST">
<input type="hidden" name="id" value="{{ dash.account }}">
{{ form.as_ul }}
<input type="submit" value="Do stuff">
</form>
{% endfor %}
在视图中:
if request.method == 'POST'
account = request.POST['id']
# be sure to include checks for the validity of the POST information
# e.g. confirm that the account does indeed belong to whats-his-face
form = AccountModifyForm(request.POST, account,
user=request.user)
....