2011-02-23 32 views
1

好吧我正在嘗試做一些應該非常簡單的事情,但我可能會錯過一些SQL或django管理知識來實現​​它。 說我有一個簡單的模型,如django - 創建一個模型,允許您爲同一個字段插入多個值?

class Book(models.Model): 
    title = models.CharField(max_length = 50) 
    review = models.TextField() 

,我想在管理網站上的「查看」現場有一個小加號,以更深入,添加到同一模型實例爲模板,通過他們迭代。

我知道我可以創建一個m2m字段的評論,它會給我這一點,但我寧願那些額外的評論可以填充從同一頁面沒有彈出窗口(爲我的無助用戶,我想保持它作爲WSIWYG越好,因爲這些文本框將被TinyMCE的供電),我不知道它是否真的有必要創建一個額外的模型只是一個文本框

+0

有多種方法可以讓文本字段包含多條數據,將數據存儲爲JSON,列表,醃製對象等,但是您必須編寫自己的getter和setter函數。 沒有任何內容自帶「+」符號用於管理員,如同「ModelAdmin」內聯。 – 2011-02-23 13:13:46

回答

9

創建Review模型,其持有的評論文章,並有ForeignKeyBook ...

class Book(models.Model): 
    title = models.CharField() 

class Review(models.Model): 
    book = models.ForeignKey(Book, related_name='reviews') 
    review = models.TextField() 

...然後註冊t他適當類型的InlineModelAdmin在管理員的書頁上編輯所有相關的評論。我建議在這種情況下使用StackedInline

class ReviewInline(admin.StackedInline): 
    model = Review 

class BookAdmin(admin.ModelAdmin): 
    inlines = [ 
     ReviewInline, 
    ] 

文檔幾乎這個確切的情況的一個例子,除了多個作者,而不是多個評論:

  • ​​
+2

這絕對是要走的路。 – Exelian 2011-02-23 12:09:49

+0

這可以爲一個模型有這兩個外鍵 – user168983 2016-10-20 09:49:36

+0

你可以給它的形象,如何看起來像管理網站 – user168983 2016-10-20 09:50:36

相關問題