Как заставить форму django принимать отключенную форму с внутренними значениями
Я пытаюсь сделать так, чтобы Django мог принять форму, которая была отключена с помощью form.disabled. Однако, когда я пытаюсь отправить ее, начальное значение, которое было вычислено на сервере, кажется, исчезает на ветру, хотя документация Django, кажется, подразумевает, что это должно быть сделано иначе.
forms.py
class SubmitResponseForm(forms.Form):
response_text = forms.CharField(label='Choice text', max_length=50)
main_text = forms.CharField(label='Main text', max_length=5000)
class SubmitResponseLiteForm(forms.Form):
response_text = forms.CharField(label='Choice text', max_length=50)
main_text = forms.CharField(label='Main text', max_length=5000, disabled=True)
views.py
#Some unimportant stuff before this
if has_role(request.user, 'subscriber'):
form = SubmitResponseForm(initial={
'response_text': split_strings1,
'main_text': split_strings2,
})
else:
form = SubmitResponseLiteForm(initial={
'response_text': split_strings1,
'main_text': split_strings2,
})
return render(request, 'nodemanager/detail.html', {
'node': node,
'editchoiceform': form
})
def SubmitGeneration(request, pk):
node = get_object_or_404(Node, pk=pk)
time = timezone.now()
if has_role(request.user, 'subscriber') == False:
form = SubmitResponseLiteForm(request.POST)
else:
form = SubmitResponseForm(request.POST)
if form.is_valid():
main_text = form.cleaned_data['main_text']
response_text = form.cleaned_data['response_text']
node.children.create(main_text=main_text, response_text=response_text, pub_date=time, creator=request.user)
return redirect('nodemanager:detail', pk=node.id)
else:
return render(request, 'nodemanager/detail.html', {
'node': node,
'editchoiceform': form
})