2011-01-05 55 views
0

如何在Django管理面板中顯示特定模型的子表單?Django 1.1管理面板中的內聯表格

class Matchup(models.Model): 
    name  = models.CharField(max_length=30) 
    winner  = models.ForeignKey('players.player',blank=True)   

class Slot(models.Model): 
    player = models.ForeignKey('players.player',blank=True) 
    matchup = models.ForeignKey(Matchup) 

每個比賽將有兩個插槽 - 我將如何去顯示符合比賽的兩個表格。

基本上,我想有這樣的事情:

Matchup Name:  [   ] 
Matchup Winner: [   ] 
-- 
== Slot 1 == 
|| Slot Player: [   ] 
== Slot 2 == 
|| Slot Player: [   ] 

我意識到它可能會出現在插槽模型是無用的,應該只是由兩個引用替換球員,但也有我想要的各種原因這樣做。

編輯:去除混亂協會

+0

我不明白你爲什麼Matchup.winner和win_slot.winner也。這不是已經在管理員中以這種方式顯示了嗎? – milkypostman 2011-01-05 23:16:34

+0

啊,是的 - 澄清:通過外鍵附加的插槽和通過win_slot和lose_slot附加的插槽是不一樣的。 – 2011-01-06 00:17:14

回答

1
from models import * 

class SlotInline(admin.StackedInline): 
    model = Slot 

class MatchupAdmin(admin.ModelAdmin): 
    model = Matchup 
    inlines = [SlotInline] 

admin.site.register(Matchup, MatchupAdmin) 
+0

完美!謝謝 – 2011-01-05 23:52:22

+0

後續問題:我希望在創建匹配時保存插槽,即使它們沒有以任何方式修改(例如,所有字段都保留空白) - 是否有一種簡單的方法可以做到這一點? – 2011-01-06 00:16:09

+0

我認爲只要插槽模型允許空白條目,就可以實現這一點。這沒有發生? – milkypostman 2011-01-06 00:37:40