Python 3.x 如何将项目放入django中的隐藏表单字段?
我认为我不能做的事对我们很多人来说都是可能的。我有一个表格和一个视图。 我想将forloop中的值作为隐藏字段悄悄地传递到表单中。Python 3.x 如何将项目放入django中的隐藏表单字段?,python-3.x,django,django-views,Python 3.x,Django,Django Views,我认为我不能做的事对我们很多人来说都是可能的。我有一个表格和一个视图。 我想将forloop中的值作为隐藏字段悄悄地传递到表单中。 def new_issue_book(request,pk): if request.method == 'POST': form = NewIssueForm(request.POST,school= request.user.school,pk=pk) if form.is_valid(): nam
def new_issue_book(request,pk):
if request.method == 'POST':
form = NewIssueForm(request.POST,school= request.user.school,pk=pk)
if form.is_valid():
name = form.cleaned_data['borrower_id']
form.save(commit=True)
books = Books.objects.filter(school = request.user.school).get(id=pk)
semest = Student.objects.filter(school = request.user.school).get(student_id=name).semester
departm = Student.objects.filter(school = request.user.school).get(student_id=name).depart
Books.Claimbook(books)
return redirect('view_issue')
else:
form = NewIssueForm(school= request.user.school,pk=pk)
return render(request, 'new_issue_book.html', {'form': form})
模型形式
class NewIssueForm(forms.ModelForm):
def __init__(self,*args, pk,school, **kwargs):
super(NewIssueForm, self).__init__(*args, **kwargs)
self.fields['borrower_id'].queryset = Student.objects.filter(school=school)
self.fields['book_id'] = forms.ModelChoiceField(queryset=Books.objects.filter(id = pk))
class Meta:
model = Issue
fields = ['book_id','borrower_id']
这应该对你有帮助
class NewIssueForm(forms.ModelForm):
def __init__(self,*args, pk,school, **kwargs):
super(NewIssueForm, self).__init__(*args, **kwargs)
self.fields['borrower_id'].queryset = Student.objects.filter(
school=school)
self.fields['book_id'].initial = pk #Sets the field with the pk and it's hidden again
class Meta:
model = Issue
fields = ['book_id','borrower_id']
widgets = {
'book_id':forms.TextInput(attrs={"'type':'hidden'}),
}
这就是你要找的吗?Django有
HiddenInput
,没有理由进行TextInput
并将类型重写为hidden。