2010-02-11 160 views
0

在Django中,是否有強制管理員用戶選擇填充幾個ForeignKeys中的一個並且不超過一個的方法?Django管理界面中的Exclusive或ForeignKey

我有一個模型是這樣的:

class URL(models.Model): 
    ... 
    links = models.URLField(_('Google Links'),verify_exists=True,unique=True) 
    project = models.ForeignKey(Project,blank=True,null=True) 
    category = models.ForeignKey(Category,blank=True,null=True) 
    person = models.ForeignKey(ExternalPerson,blank=True,null=True) 
    ... 

我想admin用戶選擇Foreignkeys項目,類別或人之一。 或者我應該組織不同的模型?

回答

1

只是一些想法...

我不知道你想要什麼與這些對象做以後,但你考慮創建一個通用的接口,所有的人?它可以解決你的問題...

如果界面不適合你,也許你可以創建一個表單來檢查只有一個ForeignKeys已被選中。

3

我所做的就是讓一個外鍵指向一個基本模型,其中所有其他模型(Google Link,Projects等)都從其繼承。這似乎保持了關係,同時將外鍵限制爲單一選擇。

+0

這聽起來像一個可行的解決方案。我會試試這個。謝謝。 –