Django の学習を始めたばかりで、ModelChoiceField で別のクエリセットを使用したいと考えています。
私はそのような3つのモデルを持っています:
class Politic(models.Model):
name = models.CharField(max_length=100)
class Economic(models.Model):
name = models.CharField(max_length=100)
class Category(models.Model):
politic = models.ForeignKey(Politic, blank = True, null = True)
economic = models.ForeignKey(Economic, blank = True, null = True)
そしてそのようなフォーム:
class MyForm(forms.Form):
choice = forms.ChoiceField(choices = (("0", u"---------"), ("1", u"Politic"),
("2", u"Economic")),
required=False)
category = forms.ModelChoiceField(queryset=Economic.objects.all(),
required=False)
私のテンプレートでは、Ajax を使用して、選択したフィールドに応じたすべてPolitic
またはEconomic
値のリストをカテゴリ フィールドに入力します。
しかし、選択"Politic"
した場合、フォームの検証で問題が発生します。これは、カテゴリ フィールドのクエリセットがEconomic.objects.all()
ではなく であるためPolitic.objects.all()
です。
動的クエリセットを変更するにはどうすればよいですか? 何か案は?