2017-04-09 10 views
1

https://docs.djangoproject.com/en/1.10/ref/models/fields/有するとlimit_choices_to:
は「カスタム中間テーブルとのManyToManyFieldで使用される場合limit_choices_toに影響を及ぼさないがスルーパラメータを使用して指定されました。」ジャンゴ:中間テーブル「から」

なぜですか? throughlimit_choices_toの両方が必要な場合はどうすればいいですか?

この状況でModelFormからFormに簡単に戻す必要がありますか?または、ModelFormでそれを行う方法はありますか?

答えて

2

私は、throughManyToManyFieldlimit_choices_toをテストしました。 驚くべきことに、それはそうではないと言っても、を動作させます。

まだ機能していない場合は、ModelFormManyToManyフィールドにカスタムクエリセットを設定できます。

# models 
class YourModel(models.Model): 
    some_attr = models.BooleanField() 

class MyModel(models.Model): 
    my_field = models.ManyToManyField(YourModel, through=...) 


# forms 
class MyModelForm(forms.ModelForm): 
    ... 
    my_field = forms.ModelMultipleChoiceField(queryset=YourModel.objects.filter(some_attr=True)) 
+0

Bang on。 'manyTomany'中間テーブルを持つフィールドで' limit_choices_to'を使うと、それはトリックになります。 Django FTW。 – surfer190

関連する問題