框架——Django。我正在尝试创建带有输入字段属性的联系表单。我对第一个字段“名称”有疑问。第二到第四个字段在 html 中完美呈现。 这是我的 models.py:
from django.db import models
class md_contactalpha(models.Model):
name = models.CharField(max_length=100, verbose_name='Name',null=False, blank=False )
email=models.EmailField(max_length=100,verbose_name='Email',
unique=True,null=False,blank=False)
phone = models.CharField( max_length=15, verbose_name='Phone',null=True,blank=True)
message = models.CharField(max_length=512,verbose_name='Message', null=True,
blank=True, )
def __str__(self):
return self.name
这是 forms.py 文件:
from django import forms
from .models import md_contactalpha
class fm_contactalpha(forms.ModelForm):
class Meta:
model = md_contactalpha
fields = ('name', 'email', 'phone', 'message')
widgets = {
'name':forms.TextInput(attrs={'class':'input_text', 'placeholder': 'Full Name'}),
'email':forms.EmailInput(attrs={'class':'input_text'}),
'phone':forms.TextInput(attrs={'class':'input_text'}),
'message':forms.Textarea(attrs={'class':'message_box','rows':5}),
}
这是 html 文件:
<form method="post">
{% csrf_token %}
<form method="POST">
{{ form.as_p }}
</form>
<button type="submit">Send Message</button>
如前所述,最后 3 个字段工作完美。 “名称”字段不会填充小部件中的任何内容并产生此 -
<input type="" class= placeholder="Name" name="Name">
<django.forms.fields.CharField object at 0x7fb2ea920ce0>
我检查了有关小部件主题的其他帖子,但似乎没有答案为什么一个名为 name 的字段应该有问题。 我将非常感谢任何帮助。谢谢。
看起来内部/外部
<form>
标签未关闭,这会导致这种意外的行为。尝试删除包含第二个 <form method="POST">
标签的行。
<form method="post">
{% csrf_token %}
{{ form.as_p }}
</form>
请注意:
submit
按钮必须带有<form>
标签才能执行表单提交。或者,作为替代方案,必须具有属性 form="yourFormId"
才能提交特定表单。<form>
属性的
action=
标签将向渲染的相同视图表单发出请求。如果这不是您所期望的 - 则必须使用视图处理表单提交的 url 设置 action=
属性。