我一直在使用Django在python中查看表单验证,因为这似乎是执行它的默认方式,除了检查每个字段,执行一些验证并为每个字段形成错误的字段踢出特定的消息。理想情况下,我希望表单验证的好处,但我不知道如何将这种Django方式与我通过表单显示的.css方式相结合。
我的表单是模板化的HTML,后面有一个css来处理显示。如果出现问题,代码会使用数据发回表单,并显示之前创建的表单。简而言之,我们如何使用css将验证耦合到预格式化的HTML表单,而无需单独验证。
以下是我正在使用的代码:
看看那些引用等http://www.djangobook.com/en/2.0/chapter07/,我一直无法想出把所有事情结合在一起的好方法。问题涉及在表单无效时发回表单和内容。所以我正在做的是逐项拉出每个生成的表单并显示在.html文件中。
所以我的问题是。我如何让这个工作。现在我可以使用css样式表显示表单,但我似乎无法在该字段上进行验证,而且我总是生成错误。
class Quote(db.Model):
email = db.StringProperty(required=True)
class QuoteForm(djangoforms.ModelForm):
class Meta:
model = Quote
exclude = ['entry_time']
class MainPage(webapp.RequestHandler):
def get(self):
form = QuoteForm();
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, {'form': form}))
def post(self):
data = QuoteForm(data=self.request.POST)
if data.is_valid():
# save here
self.redirect('/Confirm.html')
else:
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, {'form': data}))
和.html文件的部分在这里
<div>
{{ form.email.errors }}
<label for="id_email">Your e-mail address:</label>
{{ form.email }}
</div>
我放入电子邮件字段中的任何内容都无法正确验证。我不知道为什么!?我丢失了我已经填写的信息。如何保留此信息并实际进行适当的验证。该模型表明只需要一个非空字符串,但没有任何东西能满足验证。
由于
答案 0 :(得分:1)
http://www.djangobook.com/en/2.0/chapter07/的“自定义表单设计”部分介绍了如何使用HTML和CSS设置表单样式。
答案 1 :(得分:0)
看看那些引用等http://www.djangobook.com/en/2.0/chapter07/,我一直无法想出把所有事情结合在一起的好方法。问题涉及在表单无效时发回表单和内容。所以我正在做的是逐项拉出每个生成的表单并显示在.html文件中。
所以我的问题是。我如何让这个工作。现在我可以使用css样式表显示表单,但我似乎无法在该字段上进行验证,而且我总是生成错误。
class Quote(db.Model):
email = db.StringProperty(required=True)
class QuoteForm(djangoforms.ModelForm):
class Meta:
model = Quote
exclude = ['entry_time']
class MainPage(webapp.RequestHandler):
def get(self):
form = QuoteForm();
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, {'form': form}))
def post(self):
data = QuoteForm(data=self.request.POST)
if data.is_valid():
# save here
self.redirect('/Confirm.html')
else:
template_values = {}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, {'form': data}))
和.html文件的部分在这里
<div>
{{ form.email.errors }}
<label for="id_email">Your e-mail address:</label>
{{ form.email }}
</div>
我放入电子邮件字段中的任何内容都无法正确验证。我不知道为什么!?我丢失了我已经填写的信息。如何保留此信息并实际进行适当的验证。该模型表明只需要一个非空字符串,但没有任何东西能满足验证。