【发布时间】:2021-03-10 11:01:59
【问题描述】:
我正在向我的 django 应用程序添加功能,以使用 M2M 字段添加与另一个(工作)链接的模型(批次)。
问题:
我正在使用 Django 自动完成灯在表单中添加这个模型(Lot),我希望这个字段也被输入和另一个自动完成字段(合同)过滤,这个字段是一个名为合同的对象,它与M2M领域:
关系:
{Lot}--M2M 上的逆向--{Job}--外键--{Contract}
我正在尝试将自动完成中的批次过滤到仅订单上的合同密钥与表单中的字段匹配的那些,我查看了文档并且我不确定是否有任何方法可以这样做,下面是我的最新尝试以及相关代码。
models.py(仅限关系字段)
class Contract(Parent_model):
contract_id = models.IntegerField(null=False, default=0000)
class Job(Job_parent):
contract = models.ForeignKey(Contract, on_delete=models.CASCADE)
class Lot(Job_parent):
CO = models.ManyToManyField(Job, related_name='Lot')
基于自动完成类的视图(views.py)
class lot_auto_complete(autocomplete.Select2QuerySetView):
def get_queryset(self):
qs = Lot.objects.all()
contract_in = self.forwarded.get('contract', None)
if contract:
query_set = qs.filter(CO_set.first().contract=contract_in)
if self.q:
query_set = qs.filter(lot_number__icontains=self.q)
return query_set
【问题讨论】:
标签: python django django-autocomplete-light