使用python中的css进行谷歌应用引擎表单验证

时间:2011-03-23 09:27:21

标签: python google-app-engine validation

我一直在使用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>

我放入电子邮件字段中的任何内容都无法正确验证。我不知道为什么!?我丢失了我已经填写的信息。如何保留此信息并实际进行适当的验证。该模型表明只需要一个非空字符串,但没有任何东西能满足验证。

由于

2 个答案:

答案 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>

我放入电子邮件字段中的任何内容都无法正确验证。我不知道为什么!?我丢失了我已经填写的信息。如何保留此信息并实际进行适当的验证。该模型表明只需要一个非空字符串,但没有任何东西能满足验证。