我使用Django表单来收集用户的信息。但是当我在页面之间切换时,我想使用url中的一个值显示在下一页的from中。 例。 我有网页查看一本书 http://127.0.0.1:8000/checkout/780374157067
780374157067是本书中的ibn
下一页有一个表单,我可以获取用户的ISBN和卡ID。如何使用ISBN填写表单并向用户显示表单。而不是用户再次提供ISBN。
提交的ISBN应该预先填写网址中的isbn。
HTML:
<div class ="col-md-3">
<form method='POST' action=''>{%csrf_token%}
{{template_form | crispy}}
<input class="btn btn-lg btn-primary" type='submit'
value='Submit'/>
</form>
</div>
Forms.py
class loansform(forms.Form):
Isbn = forms.IntegerField()
Card_id = forms.IntegerField()
def clean_Isbn(self):
isbn = self.cleaned_data.get("Isbn")
isbn_string = str(isbn)
if len(isbn_string) != 13:
raise forms.ValidationError("Enter a valid ISBN-13")
return isbn
views.py
template_form = loansform();
答案 0 :(得分:2)
在您的视图中,您可以首先在表格中输入初始数据从网址获取参数然后:
data = {'isbn': 154646486,}
form = Myform(initial=data)
在urls.py中:
url(r'^checkout/(?P<isbn>\d+)/$',check_page)
查看示例:
def check_page(request, isbn):
data = {'isbn': isbn,}
form = Myform(initial=data)
template = 'mytem.html'
context = {'form': form,}
return render(request, template, context)
答案 1 :(得分:1)
说你有像
这样的网址url(r'^checkout/(?P<isbn>\d+)/$')
在您的视图中,当您实例化表单类时,请像这样提供初始数据。
form = YourFormClass(initial={'isbn': kwargs['isbn']})
kwargs包含url参数,因此您可以从url获取isbn。