谷歌应用程序引擎渲染复选框从数据库模型

时间:2012-08-03 20:13:09

标签: python google-app-engine django-forms

我正在开发我的第一个Google App Engine项目,我认为我误解了数据库和表单模型的基本内容。我有以下python代码:

class RegData(db.Model):
    title = db.StringProperty()
    forename = db.StringProperty()
    surname = db.StringProperty()
    interest = db.StringListProperty(choices=['TV','COMPUTING','SOCCER'])

class RegForm(djangoforms.ModelForm):
    class Meta:
        model = RegData

我想要做的是让表单将'interest'属性呈现为一组复选框而不是文本区域。这可能吗?

感谢。

1 个答案:

答案 0 :(得分:1)

来自django import forms表格

您必须在models.py

中添加上述模块

models.py

interest=(
            ('Tv', 'TV'),
            ('Computing', 'COMPUTING'),
            ('Soccer', 'SOCCER'),
                        )
class RegData(db.Model):
    title = db.StringProperty()
    forename = db.StringProperty()
    surname = db.StringProperty()
    interest = db.StringListProperty()

class RegForm(djangoforms.ModelForm):
    interest= form.CheckboxSelectMultiple(choices=interest)
    class Meta:
        model = RegData

RegData是数据库(实体)中的表,RegForm是用户将在您的页面上看到此表单。

main.py

class ShowForm(webapp.RequestHandler):
    def get(self):
        show(self)
    def post(self):
        show(self)

 def show(self):
    get = self.request.GET
    post = self.request.POST


    data = models.RegData()

    if post:
        form = models.RegForm(data=post, instance=RegDate)

        if form.is_valid():
            entity = form.save(commit=False)
            entity.put()

    else:
        form = models.RegForm(instance=RegDate)