2016-01-21 218 views
1

我想製作投票應用程序。會有民意調查的一些問題,每個問題都有一些選擇。有沒有辦法如何在投票中添加問題,然後在管理員表單中選擇問題(如嵌套內聯)?模型內的Django管理模型

class Poll(models.Model): 
    poll_title = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 

class Question(models.Model): 
    poll = models.ForeignKey(Poll) 
    question_text = models.CharField(max_length=200) 

class Choice(models.Model): 
    question = models.ForeignKey(Question) 
    choice_text = models.CharField(max_length=200) 

回答

0

一般來說,管理員網站非常適合開發人員檢查當前網站數據並調整已有內容。但是,當您嘗試創建應用程序功能時,例如創建整個民意調查,那就是您想要開始編寫自己的代碼的地方。您的成品不應該使用管理站點,就像最終用戶不應直接與數據庫交互一樣。

此時,我會創建一個需要管理員(或員工或您希望創建的任何權限組)的訪問權限的網站部分,並設置您自己的表單來創建民意調查,問題和答案,並將它們正確鏈接以在數據庫中創建正確的Poll,Question和Choice對象。

0

是的,但在一個自定義應用程序的幫助下。看看django-nested-inline包。我一直在使用它一段時間,到目前爲止這麼好。

class ChoiceInline(NestedTabularInline): 
    model = Choice 

class QuestionInline(NestedTabularInline): 
    model = Question 
    inlines = [ChoiceInline, ] 

class PollAdmin(NestedModelAdmin): 
    model = Poll 
    inlines = [QuestionInline, ]