我无法在django数据库中查看我的表单输入。

问题描述 投票:0回答:1

我是一个学习django的人,我已经创建了我的第一个表单,但是当我输入数据时,我没有在数据库中看到它,而是在我的shell中看到。我已经重新检查了我的代码,但它似乎是正常的,但它仍然不会保存在我的代码在数据库中.请帮助我在这里.谢谢。

模型。

from django.db import models

class Login(models.Model):
    first_name = models.CharField(max_length=200)
    second_name = models.CharField(max_length=200)
    email = models.EmailField()
    password = models.CharField(max_length=200)

视图。

from django.http import HttpResponse
from django.shortcuts import render
from .models import Login
from .forms import login_form

def homeview(request):
    return HttpResponse("<h1>Hello There</h1>")

def login_view(request):
    form = login_form(request.POST or None)

    if form.is_valid:
        form.save
    context = {
        "form":form
    }   

    return render(request, "login.html", context)

模板:模板。

{% block content %}

<form action="" method="GET">{% csrf_token %}

{{form.as_p}}
<input type="submit" value="Login"/> 
</form>

{% endblock %}

表格。

from django import forms
from .models import Login

class login_form(forms.ModelForm):
    class Meta:
        model = Login
        fields = [
            "first_name",
            "second_name",
            "email",
            "password"
        ]
django django-models django-views django-admin django-database
1个回答
4
投票

下面的行是不正确的。

    if form.is_valid:
        form.save

目前 if 归根结底 True 因为 .is_valid 返回绑定方法。

你需要调用 is_valid -> form.is_valid()

也是如此 form.save. 你只会返回绑定方法 save但你不叫它。

这几行字是这样的

    if form.is_valid():
        form.save()

此外,在你的模板中 在你的模板中 method 您的表格是 GET 但您访问的是 request.POST. 您需要将其中任何一种方法改为另一种方法,例如。method="POST".

© www.soinside.com 2019 - 2024. All rights reserved.