2010-09-06 164 views
0

我有2個簡單的表格/模型類Django的形式:獨特的領域

class Booking(forms.Form): 
    name = models.CharField(max_length=100, verbose_name="Your name*:") 
    place = models.ManyToManyField(Location, blank=True, null=True) 

class Location(models.Model): 
    place = models.CharField(max_length=100) 

當我展示的形式我只想顯示尚未以前檢位置。棘手的位(我認爲)的位置爲ManytoManyField,因爲我無法將unique=True添加到它。

因此,例如,用戶x將從列表中選擇(倫敦,卡迪夫或愛丁堡)並選擇倫敦。當用戶y加載表單倫敦將不再可供選擇。

任何想法?

回答

0

如何在模型級別控制這個?將名爲'inuse'的BooleanField添加到位置模型中,然後您可以向表單添加一個篩選器,以僅選擇那些未使用的篩選器。

你會翻轉INUSE爲True時,用戶X提交其形式...

此外,你可能會改變ForeignKey的關係,然後你可以使用「獨一無二」

+0

哇不知道如何我會這樣做。我會過濾模型還是視圖? – 2010-09-06 14:57:01

+0

我之前在視圖中做過。我在我的表單中有一個名爲「教練」的字段,我想將所有在我創建的「教練」用戶組中的用戶填入下拉列表中。像這樣:form.fields ['coach']。queryset = User.objects.all()。filter(groups__name ='coach') – nstehr 2010-09-06 23:25:37