2012-06-08 111 views
0

我希望能够在餐桌上参加派对。首先我需要显示表单,所以我创建了一个名为open_tables的额外字段的模型表单。这必须是每个标有AVAILABLE的表格都有能力。问题是我不知道如何引用queryset中的number_in_party字段。我已经绑self.base_fields,但自己不工作。我试过SeatPartyForm.model.number_in_party,这不起作用。这发生在get,并且number_in_party在此处被填充。有没有办法做这个查询?如何在模型选择字段的查询集中使用模型字段?

class SeatPartyForm(ModelForm): 

open_tables = forms.ModelChoiceField(queryset=Table.objects.filter(status__exact=Table.AVAILABLE).exclude(max_capacity__lt = model.base_fields['number_in_party'])) 
class Meta: 
    model = Party 
    fields = ('name', 'number_in_party')` 

回答

0

你不知道实际number_in_party用户在一个充满了。服务器端Django表单不能自动为你做限制。

因此,您需要更改open_tables之后number_in_party可用,通过javascript;或将表单拆分为两部分,第一部分用户填写number_in_party,第二部分在服务器端,您可以根据number_in_party的就绪值过滤open_tables

+0

这是在得到,它是导致问题的解释器。我还更新了这个问题,在这个时候,这个数字已经被使用了。 –

相关问题