根据ManyToMany关系并使用其他表值创建多个ChoiceField

时间:2018-08-02 22:12:47

标签: python sql django postgresql django-queryset

假设我有以下模型:

class Identifiers(models.Model):
    number = models.IntegerField(unique=True)
    #other things

class Items(models.Model):
    number = models.ForeignKey(Identifiers, to_field='number')
    type = models.CharField()
    aspect = models.CharField()

class Equipment(models.Model):
    items = models.ManyToMany(Identifiers)

因此,基本上,我的设备模型是项目的“列表”,但由标识符模型引用,因为一个ID重新组合了多个项目(例如,具有不同名称的同一项目)。

默认情况下,生成的表单字段将填充Identifiers对象,但我想将它们替换为Items对象(当然,选择多个项目等同于仅选择其中之一)。

我想做的是用Items对象的一部分填充选择(仅几个,我可能会使用页面列出所有选项,因为Items表当前填充了9k个对象) ,但要保留所有已经存在于我的元素实例以及初始选择中的项目(对于一个标识符元素,仅显示为一个Items元素,而不是全部显示)。

我正在使用带有搜索字段的双选框的javascript插件,因此无法一次加载所有值,因为这太慢了。

我首先想要获取Items的元素并将其作为字段的选择,但是我还需要从ManyToMany关系中添加Items。有没有一种方法可以“连接”已切片的查询集,或者有一种更理想的方法来实现我要执行的操作?

0 个答案:

没有答案