AngularJs と Django を使用したシングル ページ アプリケーションがあります。私のメイン ページでは、ページを読み込むときに必要なすべてのフォームを取得します。ただし、一部のフィールドは動的に更新されます。
私が持っているとしましょう
class Model1(models.Model):
pass
class Model2(models.Model):
model_1 = models.ForeignKey(Model1)
フォーム:
class Model2Form(forms.ModelForm):
class Meta:
model = Model2
fields = ('model_1', )
私の SPA では、(ページをリロードせずに) Model1 のインスタンスを作成できます。表示されているオプションをフィルタリングし、選択フィールドに新しいインスタンスを動的に追加する方法を知っていますが、そうすることで、html が最初にレンダリングされたときに、角度の魔法が発生して利用可能なオプションをフィルタリングする前に、django によって作成されたクエリセットを取得します。デフォルトでは model.objects.all() です。わかりました、私はそれを表示したくありません。関数のinitに追加しようとしました:
self.fields['model_1'].queryset = Model1.objects.none()
実際、フォームが最初にレンダリングされたときに選択フィールドにオプションが表示されませんが、フォームを検証できず、エラーが発生します:(Select a valid choice. That choice is not one of the available choices.
明らかに、 queryset. none() のために使用できるオプションがありませんでした)
呼び出されたときにフォームをロードするのではなく、ページが最初にロードされるときにフォームをロードしたいです。そうするのに役立つオプションはありますか?
乾杯ガイズ, キープ・ロッキング