Django表单值未插入sqlite3数据库表中
我是使用Django进行web开发的新手。 我已经创建了3个模型和相应的形式。即使makemigrations和migrate命令也没有报告任何问题,并且还在SQLite DB文件中创建了表。 但仍然没有将值插入到DB文件中。 收到空查询集,即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')
。
有人能告诉我为什么不插入值吗?提前谢谢
程序片段:-
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}}提交