无法在数据库中保存表单数据-Django

无法在数据库中保存表单数据-Django,django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,我正在尝试创建一个简单的表单,将姓名和电子邮件作为用户输入。 但在我提交后,它并没有保存在数据库中 manage.py dumpdata显示[],即空行。 请帮忙 models.py class EmpD(models.Model): name = models.CharField(max_length=100) email=models.CharField(max_length=100) forms.py class SubmitF(forms.ModelForm):

我正在尝试创建一个简单的表单,将姓名和电子邮件作为用户输入。 但在我提交后,它并没有保存在数据库中 manage.py dumpdata显示[],即空行。 请帮忙

models.py

class EmpD(models.Model):
    name = models.CharField(max_length=100)
    email=models.CharField(max_length=100) 
forms.py

class SubmitF(forms.ModelForm):
    name = forms.CharField()
    email= forms.CharField()
    class Meta:
        model = EmpD
        fileds = '_all_'
views.py

def submit_view(request):
template_name = 'emp/home.html'
redirect_url = 'emp/su.html'
form = SubmitF()

if request.method == 'POST':
    form = SubmitF(request.POST)
    if form.is_valid():
       form.save()

       return HttpResponseRedirect(redirect_url)
else:
    return render(request, template_name, {'form': form})

def index(request):
return render(request, 'emp/home.html')
包含表单的html:

<form action='' method="post" >

{% csrf_token %}
{{ form }}

<table border="0" cellpadding="5" cellspacing="0">
<tr> <td style="width: 50%">
<label for="Name"><b>First name *</b></label><br />
<input name="Name" type="text" maxlength="50" style="width: 260px" />
</td> <td style="width: 50%">

</td> </tr> <tr> <td colspan="2">
<label for="Email_Address"><b>Email *</b></label><br />
<input name="Email_Address" type="text" maxlength="100" style="width: 535px" 
/>
</td> </tr> <tr> <td colspan="2">



<input  type="submit" value="Submit Data" />

</td> </tr>
</table>
</form>

建模、单独表单字段和单个表单的3个视图是非常糟糕的方法。 试试这个。定义简单的模型。对于电子邮件输入,定义电子邮件字段,表单本身进行验证

Models.py

class EmpD(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField(null=True, blank=True)
Define forms.py,如果您想包含模型字段,只需
fields=''\uuuuuuuuuuuuuuu'
即可, 否则,请在此表单中定义其他字段

forms.py

class SubmitF(forms.ModelForm):
    class Meta:
        model = EmpD
        fields = '__all__'
Simple views.py,若请求方法为Get,则表单呈现,并在Post请求中,将数据传递给服务器

def submit_view(request):
    template_name = 'path_to_html'
    redirect_url = 'your_url'
    form = SubmitF()

    if request.method == 'POST':
        form = SubmitF(request.POST)
        if form.is_valid():
           form.save()
           return HttpResponseRedirect(redirect_url)
    else:
        return render(request, template_name, {'form': form})
模板结构

<form action="/your-name/" method="post">
    <label for="name">Your name: </label>
    <input id="id_name" type="text" name="name" value="{{ current_name }}">
    <input type="submit" value="OK">
</form>

你的名字:

建模、单个表单的单独表单字段和3个视图是非常糟糕的方法。 试试这个。定义简单的模型。对于电子邮件输入,定义电子邮件字段,表单本身进行验证

Models.py

class EmpD(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField(null=True, blank=True)
Define forms.py,如果您想包含模型字段,只需
fields=''\uuuuuuuuuuuuuuu'
即可, 否则,请在此表单中定义其他字段

forms.py

class SubmitF(forms.ModelForm):
    class Meta:
        model = EmpD
        fields = '__all__'
Simple views.py,若请求方法为Get,则表单呈现,并在Post请求中,将数据传递给服务器

def submit_view(request):
    template_name = 'path_to_html'
    redirect_url = 'your_url'
    form = SubmitF()

    if request.method == 'POST':
        form = SubmitF(request.POST)
        if form.is_valid():
           form.save()
           return HttpResponseRedirect(redirect_url)
    else:
        return render(request, template_name, {'form': form})
模板结构

<form action="/your-name/" method="post">
    <label for="name">Your name: </label>
    <input id="id_name" type="text" name="name" value="{{ current_name }}">
    <input type="submit" value="OK">
</form>

你的名字:

请在views.py code中修复缩进并显示您的URL(
fileds='\u all'
-->
fields='\u all'
)@PRMoureu实际上是
fields='\u all'
)请在views.py code中修复缩进并显示您的URL(
fileds='\u all'
-->
fields='\u all'
)@PRMoureu实际上是
fields='\uuuu all\uuuuuu'
:)为什么要添加
login\u required
?删除它,不管:)我的意思是,你可以为OP制造新的麻烦,而它在当前版本中不存在logic@Sagar我试过你简单的方法做了所有的改变,但dumpdata仍然显示为空row@Sagar我需要为views.py中定义的submit\u视图创建url模式吗?为什么要添加
login\u required
?删除它,不管:)我的意思是,您可以为OP创建新的问题,而它在当前视图中不存在logic@Sagar我试过你简单的方法做了所有的改变,但dumpdata仍然显示为空row@Sagar是否需要为views.py中定义的submit_视图创建url模式?