ModelForm не создает новую запись в базе данных - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь получить свою форму для сохранения ответов в базе данных, однако новая запись не создается в базе данных, когда я пытаюсь проверить через раздел администратора. Когда я нажимаю следующую кнопку, страница перезагружается, как и должно быть, и никаких ошибок не появляется. Я удалил файл db.sqlite3 и снова запустил миграцию, но он все еще не работал. Другие формы сохраняют данные в базе данных. Вопрос только с этой формой.

Можете ли вы сказать мне, какие изменения я должен сделать?

Заранее спасибо

views.py

def qone(request):
    if request.method == "GET":
        global starttime
        starttime = my_timer()
        form.save()
    elif request.method == "POST":
        form = Question1Form(request.POST)
        if form.is_valid():
            global endtime
            endtime = my_timer()
            global timespent1
            timespent1 = "{0} seconds".format(endtime - starttime)
            form.save(commit=True)
    else:
        form = Question1Form()

    form = Question1Form()
    return render(request,'question1.html',{'form':form})

models.py

class Responses(models.Model):
question1 = models.TextField()
question2 = models.TextField()
question3 = models.TextField()
timespent1 = models.TimeField(null=False)

forms.py

class Question1Form(forms.ModelForm):
question1 = forms.CharField()
timespent1 = forms.TimeField(widget=forms.HiddenInput())

class Meta:
    model = Responses
    fields = ('question1','timespent1')

html

    {% extends 'base.html' %}
{% block content %}
{% load staticfiles %}

<div class="container">
  <form method="POST">
    {% csrf_token %}
    {{form.as_p}}
    <input type="Submit" name="" value="Next">

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

1 Ответ

0 голосов
/ 31 октября 2019

Ошибки не отображаются, потому что вы переопределяете форму перед рендерингом. Не делай этого;удалить эту предпоследнюю строку.

...