我正在使用Django 2.1.3、django-smart-selects 1.5.4和三个简单的模型,例如客户、计费帐户和订单。
需要做的是在创建订单时,用户应该选择一个客户(假设所有注册客户的数量会很大)作为autocomplete_field。选择客户后,应该有另一个选择,其中包含与该客户关联的所有计费帐户。
在订单中,我使用智能选择将Client作为 ForeignKey,将BillingAccount作为 ChainedForeignKey 与Client关联,如下所示:
class Order(models.Model):
client = models.ForeignKey(Client, on_delete=models.PROTECT, null=True)
billing_account = ChainedForeignKey(BillingAccount, chained_field="client",
chained_model_field="client",
show_all=False,
auto_choose=True,
on_delete=models.PROTECT,
null=True)
问题是当用户选择给定的Client时,BillingAccount选择不会自动填充。
注意:
当Client未在 OrderAdmin 的autocomplete_fields BillingAccount 中关联时,它应该与与该Client关联的所有帐户一起填写。
我编写了自定义 Ajax,这对我有用,但我的问题是:
有什么我想念的东西,或者 django-smart-selects 默认情况下不适用于 autocomplete_fields 吗?