Итак, я на самом деле не добавляю какие-либо данные из формы data в базу данных, она будет запускаться через программу для редактирования абзацев. Мне не удается получить ответ на очистку данных. Я могу получить данные в обычном режиме, но они не добавляются в чистый словарь. Я предполагаю, что это потому, что я перезаписал метод инициализации формы, но я полностью застрял в том, как это исправить.
Если мне удастся избежать очистки данных, все, вероятно, сработает, я новичок, поэтому мне интересно что havo c это вызовет в конце.
Мои данные формы:
class GameForm(forms.Form):
def __init__(self, *args, **kwargs):
categories= kwargs.pop('categories', None)
super(GameForm, self).__init__(*args, **kwargs)
if categories:
for i in range(0, categories[0]):
j=i+1
self.fields["_noun_%d" % j] = forms.CharField(max_length=15, label=("Noun "+ str(j)+":"))
self.fields["_noun_%d" % j].widget.attrs.update({'class': 'special'})
for i in range(0, categories[1]):
j = i + 1
self.fields["_verb_%d" % j] = forms.CharField(max_length=15, label=("Verb "+ str(j)+":"))
self.fields["_verb_%d" % j].widget.attrs.update({'class': 'special verb'})
for i in range(0, categories[2]):
j = i + 1
self.fields["_adverb_%d" % j] = forms.CharField(max_length=15, label=("Adverb "+ str(j)+":"))
self.fields["_adverb_%d" % j].widget.attrs.update({'class': 'special adverb'})
for i in range(0, categories[3]):
j = i + 1
self.fields["_adjective_%d" % j] = forms.CharField(max_length=15, label=("Adjective "+ str(j)+":"))
self.fields["_adjective_%d" % j].widget.attrs.update({'class': 'special adjective'})
for i in range(0, categories[4]):
j = i + 1
self.fields["_ptverb_%d" % j] = forms.CharField(max_length=15, label=("Past Tense Verb "+ str(j)+":"))
self.fields["_ptverb_%d" % j].widget.attrs.update({'class': 'special verbed'})
for i in range(0, categories[5]):
j = i + 1
self.fields["_plnoun_%d" % j] = forms.CharField(max_length=15, label=("Plural Noun "+ str(j)+":"))
self.fields["_plnoun_%d" % j].widget.attrs.update({'class': 'special'})
def nouns(self):
return [self[name] for name in filter(lambda x: x.startswith('_noun'), self.fields)]
def verbs(self):
return [self[name] for name in filter(lambda x: x.startswith('_verb'), self.fields)]
def adverbs(self):
return [self[name] for name in filter(lambda x: x.startswith('_adverb'), self.fields)]
def adjectives(self):
return [self[name] for name in filter(lambda x: x.startswith('_adject'), self.fields)]
def verbeds(self):
return [self[name] for name in filter(lambda x: x.startswith('_ptverb'), self.fields)]
def plnouns(self):
return [self[name] for name in filter(lambda x: x.startswith('_plnoun'), self.fields)]
Мой ответ на вид
def answer(request):
if request.method == "POST":
form = GameForm(request.POST)
if form.is_valid():
clean_form= form.cleaned_data
unclean= form.data
return render(request, 'madlibs/answer.html', {'content': clean_form, 'dictionary':unclean})
Мой шаблон
{% extends 'madlibs/base.html' %}
{% block 'body' %}
{% load static %}
<div class="main">
{% csrf_token %}
<h6>{{ content }}</h6><br>
<h6> Working data uncleaned:<br><br>
{{ dictionary }}
</h6>
<!-- <audio src="../../tmp/temp.wav" controls></audio>-->
</div>
{% endblock %}