@realgord88

Как сделать проверку данных из формы с данными из базы данных?

Пишется небольшой сервис для тасков.

На странице выводятся все таски под которыми формы для ввода правильного ответа (flag). Подскажите, как сделать проверку введенных данных в форму с нужным ответом в БД?

views.py
def tasks(request):
    task = Task.objects.all()
    context = {
        'tasks': task,
    }
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('/result/')
    else:
        form = AnswerForm()
        context = {
            'tasks': task,
            'form': form
        }
    return render(request, 'Socket/task.html', context)


models.py
class Task(models.Model):
    name = models.TextField()
    category = models.TextField()
    right_answer = models.TextField()
    description = models.TextField(blank=True)
    points = models.IntegerField()
    date = models.DateField()
    file = models.FileField(upload_to='/Files/', verbose_name='Файл', blank=True)


template
{% block content %}
{% for task in tasks %}
    <h3>{{ task.name }} - {{ task.points }} очков</h3>
    <h4>Категория - {{ task.category }}</h4>
    <pre>{{ task.description }}</pre>
    <form action="" method="post">
      {% csrf_token %}
       {% bootstrap_form form %}
     {% buttons %}
        <button type="submit" class="btn btn-primary">
            {% bootstrap_icon "ok" %} Ответить
        </button>
    {% endbuttons %}

    </form>
    {% endfor %}
{% endblock %}


Форма
class AnswerForm(forms.Form):
    answer = forms.CharField(widget=forms.TextInput, label='Флаг')
  • Вопрос задан
  • 372 просмотра
Решения вопроса 1
zigen
@zigen
Необходимо переопределить метод form.is_valid() и в него добавить сравнение введенного ответа с истинно верным из БД
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы