0

我正在开发我的第一个 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

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

谢谢。

4

1 回答 1

1

从 django 导入表单作为表单

您必须在 models.py 中添加上述模块

模型.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 是用户会在你的页面上看到这个表格。

主文件

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)
于 2012-12-05T12:05:54.790 回答