Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django表单值未插入sqlite3数据库表中_Django_Sqlite_Django Forms_Django Templates - Fatal编程技术网

Django表单值未插入sqlite3数据库表中

Django表单值未插入sqlite3数据库表中,django,sqlite,django-forms,django-templates,Django,Sqlite,Django Forms,Django Templates,我是使用Django进行web开发的新手。 我已经创建了3个模型和相应的形式。即使makemigrations和migrate命令也没有报告任何问题,并且还在SQLite DB文件中创建了表。 但仍然没有将值插入到DB文件中。 收到空查询集,即。 有人能告诉我为什么不插入值吗?提前谢谢 程序片段:- model.py class User(models.Model): name = models.CharField(max_length=100, default='ABC')

我是使用Django进行web开发的新手。 我已经创建了3个模型和相应的形式。即使makemigrations和migrate命令也没有报告任何问题,并且还在SQLite DB文件中创建了表。 但仍然没有将值插入到DB文件中。 收到空查询集,即
。 有人能告诉我为什么不插入值吗?提前谢谢

程序片段:-

model.py

class User(models.Model):

    name = models.CharField(max_length=100, default='ABC')
    password = models.CharField(max_length=50, default='ABC')

    def __str__(self):
        print("self.name:", self.name)
        return self.name

class Faculty_Info(models.Model):

    fid = models.IntegerField(default='123')
    fname = models.CharField(max_length=50, default="ABC")
    femail = models.EmailField(max_length=50, default='abc@gmail.com')
    fcontact = models.IntegerField(default='123')
    faddress = models.TextField(max_length=50, default='ABC')
    fsalary = models.IntegerField(default='123')

    def __str__(self):
        return self.fname

class Student_Info(models.Model):

    sid = models.IntegerField(default='123')
    sname = models.CharField(max_length=50, default='ABC')
    semail = models.EmailField(max_length=50, default='abc@gmail.com')
    scontact = models.IntegerField(default='123')
    saddress = models.TextField(max_length=50, default='ABC')

    def __str__(self):
        return self.sname
def faculty_info_section(request):
    faculties = Faculty_Info.objects.all()
    print("faculties", faculties)
    return render(request, "faculty_info_section.html", {'faculties': faculties})


def add_faculty(request):
    if request.method == "POST":
        faculty_form = Faculty_Info_Form(request.POST)
        print("faculty_form", faculty_form)
        if faculty_form.is_valid():
            try:
                faculty_form.save()
                print("faculty_form:", faculty_form)
                return redirect('/faculty_info_section')
            except:
                pass
    else:
        faculty_form = Faculty_Info_Form()
    print("faculty_form_2", faculty_form)
    return render(request, 'add_faculty.html', {'faculty_form': faculty_form})
from django import forms
from django.forms import Textarea

from School.models import User, Faculty_Info, Student_Info


class UserLoginForm(forms.ModelForm):
    class Meta:
        model = User
        fields = "__all__"


class Faculty_Info_Form(forms.ModelForm):
    class Meta:
        model = Faculty_Info
        widgets = {
            'fid': Textarea(attrs={'cols': 30, 'rows': 2}),
            'fname': Textarea(attrs={'cols': 30, 'rows': 2}),
            'femail': Textarea(attrs={'cols': 30, 'rows': 2}),
            'fcontact': Textarea(attrs={'cols': 30, 'rows': 2}),
            'faddress': Textarea(attrs={'cols': 30, 'rows': 2}),
            'fsalary': Textarea(attrs={'cols': 30, 'rows': 2}),
        }
        fields = "__all__"


class Student_Info_Form(forms.ModelForm):
    class Meta:
        model = Student_Info
        widgets = {
            'sid': Textarea(attrs={'cols': 30, 'rows': 2}),
            'sname': Textarea(attrs={'cols': 30, 'rows': 2}),
            'semail': Textarea(attrs={'cols': 30, 'rows': 2}),
            'scontact': Textarea(attrs={'cols': 30, 'rows': 2}),
            'saddress': Textarea(attrs={'cols': 30, 'rows': 2}),
        }
        fields = "__all__"
视图.py

class User(models.Model):

    name = models.CharField(max_length=100, default='ABC')
    password = models.CharField(max_length=50, default='ABC')

    def __str__(self):
        print("self.name:", self.name)
        return self.name

class Faculty_Info(models.Model):

    fid = models.IntegerField(default='123')
    fname = models.CharField(max_length=50, default="ABC")
    femail = models.EmailField(max_length=50, default='abc@gmail.com')
    fcontact = models.IntegerField(default='123')
    faddress = models.TextField(max_length=50, default='ABC')
    fsalary = models.IntegerField(default='123')

    def __str__(self):
        return self.fname

class Student_Info(models.Model):

    sid = models.IntegerField(default='123')
    sname = models.CharField(max_length=50, default='ABC')
    semail = models.EmailField(max_length=50, default='abc@gmail.com')
    scontact = models.IntegerField(default='123')
    saddress = models.TextField(max_length=50, default='ABC')

    def __str__(self):
        return self.sname
def faculty_info_section(request):
    faculties = Faculty_Info.objects.all()
    print("faculties", faculties)
    return render(request, "faculty_info_section.html", {'faculties': faculties})


def add_faculty(request):
    if request.method == "POST":
        faculty_form = Faculty_Info_Form(request.POST)
        print("faculty_form", faculty_form)
        if faculty_form.is_valid():
            try:
                faculty_form.save()
                print("faculty_form:", faculty_form)
                return redirect('/faculty_info_section')
            except:
                pass
    else:
        faculty_form = Faculty_Info_Form()
    print("faculty_form_2", faculty_form)
    return render(request, 'add_faculty.html', {'faculty_form': faculty_form})
from django import forms
from django.forms import Textarea

from School.models import User, Faculty_Info, Student_Info


class UserLoginForm(forms.ModelForm):
    class Meta:
        model = User
        fields = "__all__"


class Faculty_Info_Form(forms.ModelForm):
    class Meta:
        model = Faculty_Info
        widgets = {
            'fid': Textarea(attrs={'cols': 30, 'rows': 2}),
            'fname': Textarea(attrs={'cols': 30, 'rows': 2}),
            'femail': Textarea(attrs={'cols': 30, 'rows': 2}),
            'fcontact': Textarea(attrs={'cols': 30, 'rows': 2}),
            'faddress': Textarea(attrs={'cols': 30, 'rows': 2}),
            'fsalary': Textarea(attrs={'cols': 30, 'rows': 2}),
        }
        fields = "__all__"


class Student_Info_Form(forms.ModelForm):
    class Meta:
        model = Student_Info
        widgets = {
            'sid': Textarea(attrs={'cols': 30, 'rows': 2}),
            'sname': Textarea(attrs={'cols': 30, 'rows': 2}),
            'semail': Textarea(attrs={'cols': 30, 'rows': 2}),
            'scontact': Textarea(attrs={'cols': 30, 'rows': 2}),
            'saddress': Textarea(attrs={'cols': 30, 'rows': 2}),
        }
        fields = "__all__"
教员信息部分.html

    {% for faculty in faculties %}
    <tr>
        <td>{{ faculty.fid }}</td>
        <td>{{ faculty.fname }}</td>
        <td>{{ faculty.femail }}</td>
        <td>{{ faculty.fcontact }}</td>
        <td>{{ faculty.faddress }}</td>
        <td>{{ faculty.fsalary }}</td>
        <td>
            <a href="/edit/{{ faculty.id }}"><span class="glyphicon glyphicon-pencil">Edit</span></a>
            <a href="/delete/{{ faculty.id }}">Delete</a>
        </td>
    </tr>
{% endfor %}

请帮助,提前谢谢。

必须查看您的表格,以便说明此处可能出现的问题。它的其余部分看起来不错,只是我不明白为什么你需要在那里尝试/except块,而且faculty\u info\u section.html似乎无关紧要。此外,我还建议浏览文档中的相应部分:有人能回答我的问题吗?!@安德烈·奥斯莫洛夫斯基:你能调查一下吗?一切看起来都很标准。打印更多内容,例如,
request.POST
查看查看函数获取的数据。确保执行
form.save()
。为此,您可以在if/else块中插入如下行:
print('request method is POST-idely')
print('form is valid')
。基本上,您只需要小心,因为您的示例与文档中解释django表单的示例几乎相同。方法==Post没有输入有效的if代码,而是在else块中输入,而没有保存表单。您的
add\u faculty.html
是这样的吗<代码>{%csrf\u令牌%}{{form}}提交