2011-02-20 53 views
0

嘿我試圖創建一個調查,要求用戶創建自己的問題,並列出5個多項選擇。我的第一個意義是我創建了兩個數據存儲區,一個存儲用戶問題,一個存儲5個選擇映射到剛剛創建的問題。但我不知道我應該如何處理這5個選擇以及如何將它們映射到問題。任何人有想法?非常感謝你如何創建一個調查,有5個選擇

+0

您將不會創建兩個數據存儲。你可能會創建兩種不同的種類或模型。 –

回答

1

就我所知,你想在你的模式中代表一對多關係。這是一個分析guide

class Question(db.Model): 
    text = db.StringProperty() 

class Answer(db.Model): 
    text = db.StringProperty() 
    question = db.ReferenceProperty(Question, 
           required=True, 
           collection_name='answers') 

這是你的模型應該如何看起來就像要點。您可以從Django呈現模板中的每個問題獲取您的答案,就像您在GQL中所做的查詢一樣,並找到您的問題。如果您想爲每個問題指定最大數量的答案,您必須手動執行。

{% for answer in question.answers %} 
    {{answer.text}} 
{% endfor %} 

我絕對建議您閱讀本教程。

1

如果您在瀏覽器中提出調查問題,我肯定會使用具有問題和答案屬性的一個模型(在Peter指出的一個數據存儲區中)。將問題和答案序列化到兩個TextProperties中(一定要先將它們轉義)。從這一點來說,所有的事情都可以在Javascript內部完成,將文本分割成一個數組,然後構建任何你想要的innerHTML類型。您可能希望在第三個字段中添加關於問題是否爲單一答案(單選按鈕或下拉列表)或多選(複選框)的元數據。一個GAE實體,一個get_by_id,如果您使用ndb則使用auto-memcache,不需要額外的處理成本(例如Django模板)。這是最快和最便宜的,非常靈活的imho。 HTH。 -stevep。

相關問題