0

パーティーをテーブルに着席できるようにしたい。最初にフォームを表示する必要があるため、open_tables という追加フィールドを使用してモデル フォームを作成します。これは、容量を持つ AVAILABLE とマークされたすべてのテーブルである必要があります。問題は、クエリセットから number_in_party フィールドを参照する方法がわからないことです。self.base_fields を結びましたが、self が機能しません。私は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')`
4

1 に答える 1

0

number_in_partyユーザーが記入する前に、実際の金額はわかりません。サーバー側の Django フォームは、制限を自動的に行うことはできません。

したがって、javascript を使用して、利用可能になっopen_tablesた後に変更する必要があります。number_in_partyまたは、フォームを 2 つの部分に分割します。最初の部分ではユーザーが入力し、2 番目の部分ではサーバー側で の準備値に従ってnumber_in_partyフィルタリングできます。open_tablesnumber_in_party

于 2012-06-09T07:03:35.013 に答える