2010-09-06 124 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