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

私がやりたいことは、フォームに「interest」プロパティをテキスト領域ではなく一連のチェック ボックスとしてレンダリングさせることです。これは可能ですか?

ありがとう。

4

1 に答える 1

1

djangoからフォームをフォームとしてインポート

上記のモジュールを 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)
于 2012-12-05T12:05:54.790 に答える