繁体   English   中英

是什么导致我的输入无法保存到我的django模型数据库中?

[英]What is causing my input to not be saved into my django model database?

我正在尝试使用Django创建一个测验网站。 我创建了一个模型表单,其中输入框与提交按钮一起出现在网站上。 根据cmd,输入文本并提交它可以正常工作并发送POST请求。 但是,它似乎没有将输入保存到模型中,这正是我想要实现的。

views.py

from django.http import HttpResponse
from django.shortcuts import render, redirect

from .models import Question, InputText
from .forms import AnswerForm

# Only shows relevant view

def kvizpost(request):
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        if form.is_valid():
            text = form.cleaned_data()
            text.save()
            return redirect('kviz:kviz')

    else:
        form = AnswerForm()
    return render(request, 'vprasanja/kviz.html', {'form' : form})

forms.py

from django import forms
from kvizapp.models import InputText

class AnswerForm(forms.ModelForm):
    class Meta:
        model = InputText
        fields = ('vnesi',)

models.py

from django.db import models

# Only shows relevant model

class InputText(models.Model):
    vnesi = models.CharField(max_length=100)

kviz.html


{% block body %}
<form action = "/kviz/" method="post">
{% csrf_token %}
{{ form.as_p }}
<br>
<input type="submit" value="Vnos">
</form>
{% endblock %}

编辑:我被要求显示网址。

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('<kviz/', views.kviz, name='kviz'), # The kviz view just renders the page.
]
if form.is_valid():
    form.save()
    return redirect('kviz:kviz')
else:
    # if form is not valid
    return render(request, 'vprasanja/kviz.html', {'form' : form})

在表单实例上使用save()方法保存表单,因为您使用的是ModelForm ,所以一切都应该正常工作。

参考: https//docs.djangoproject.com/en/2.2/topics/forms/modelforms/#the-save-method

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM