我想用URL参数预填表单,但我不确定应该如何配置URL。我需要填写多个字段,所以使用URL参数仍然是最好的方法吗?在我复习的教程中,大多数情况下只使用GET请求中的1或2个参数。在我看来,我目前只处理一个字段,因为我有一个参数的麻烦。您可以在表单模型中看到我想填写的其他字段。任何帮助都非常感谢!
views.py
def new_opportunity_confirm(request):
form_class = OpportunityForm
account_manager = request.GET.get('account_manager')
form = form_class(initial={'account_manager': account_manager})
return render(request, 'website/new_opportunity_confirm.html', {'form': form})
urls.py
re_path(r'new_opportunity/new_opportunity_confirm/(?P<account_manager>\w+)/$', view=views.new_opportunity_confirm,
name='new_opportunity_confirm'),
new_opportunity_confirm.html
<form action="" method="post" name="newOpportunityForm" id="newOpportunityForm">
{% csrf_token %}
<div class="field">
<label class="label">Account Manager:</label>
<div class="select">
<select name="account_manager" id="account_manager" required>
<option value="{{ form }}">{{ form }}</option>
</select>
</div>
</div>
1条答案
按热度按时间9vw9lbht1#
这取决于你是否想让你的参数成为url的一部分,在你的情况下,我建议不要,但是让我们看看这两种方法。
对于GET参数(url?var 1 =poney&var2=unicorn):你不需要配置你的url。Django会为你做这些工作,你只需要配置询问点之前的内容。然后你可以使用
request.GET.get("var1")
访问那些,或者如果你想在找不到的情况下使用默认值request.GET.get("var1", "default")
。在你的模板中,你可以使用{{ request.GET.var1 }}
访问它。对于URL(url/poney/unicorn)中的参数:您需要配置url来捕获您想要的部件,并且您需要在接收视图中有一个参数来获取URL中的部件:
然后,您可以像访问任何其他变量一样访问它,如果您想在模板中访问它,则可以将它发送到模板。
同样,第二种方法似乎并不适合你想达到的目标。你已经达到了一半,你只是混合了两种方法。