使用django和css进行应用引擎验证

时间:2011-03-24 07:50:32

标签: python css django google-app-engine

看看那些参考文献等,我一直无法想出把所有东西连在一起的好方法。问题涉及在表单无效时发回表单和内容。所以我正在做的是逐项拉出每个生成的表单并显示在.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>

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

1 个答案:

答案 0 :(得分:1)

您可以将自己的属性添加到Django用于呈现表单元素的小部件(即控件)中。这包括CSS样式的class属性:

class QuoteForm(djangoforms.ModelForm):
    email = EmailField(widget = TextInput(attrs={'class':'textfield'}))
    class Meta:
        model = Quote
        exclude = ['entry_time']

缺点是您需要在表单类中明确指定模型中的字段。