Django проверка формы не проходит в cleaned_data, хотя данные есть - PullRequest
0 голосов
/ 17 июня 2020

Итак, я на самом деле не добавляю какие-либо данные из формы 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...