我有一个带有 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() 没有可用的选项)
我真的不想在调用时加载表单,而是在我的页面第一次加载时加载。有什么选择可以帮助我这样做吗?
干杯家伙,继续摇摆