假设我有以下模型:
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。有没有一种方法可以“连接”已切片的查询集,或者有一种更理想的方法来实现我要执行的操作?