2012-08-03 21 views
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 

我想要做的是有形式呈現的「興趣」財產作爲一組的複選框而不是文本區域。這可能嗎?

謝謝。

回答

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) 
相關問題