Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django组合两个查询集并将其调用为html_Python_Django - Fatal编程技术网

Python django组合两个查询集并将其调用为html

Python django组合两个查询集并将其调用为html,python,django,Python,Django,我在views.py中有这个queryset,我正在使用union来组合这两个queryset,我如何使用另一个模型(sql中的内部联接)组合这两个queryset并将其调用到html?请检查我特别提供的温度 company = FmCustomerUsers.objects.filter(user=request.user.id) employee = FmCustomerEmployeeSupplier.objects.filter( fmCustomerID__compan

我在views.py中有这个queryset,我正在使用union来组合这两个queryset,我如何使用另一个模型(sql中的内部联接)组合这两个queryset并将其调用到html?请检查我特别提供的温度

company = FmCustomerUsers.objects.filter(user=request.user.id)
employee = FmCustomerEmployeeSupplier.objects.filter(
        fmCustomerID__company_name__in=company.values_list('fmCustomerID__company_name'))
feedback = TrEmployeeSuppliersFeedbackQuestionsSubmittedRecords.objects.filter(
        fmCustomerID__company_name__in=company.values_list('fmCustomerID__company_name')).filter(
        fmCustomerEmployeeSupplierID__in=employee.values_list('id')).union(TrCustomerEmployeeSupplierSubmittedRecords.objects.filter(
        fmCustomerID__company_name__in=company.values_list('fmCustomerID__company_name')))
这是我的模特

class FmCustomerEmployeeSupplier(models.Model):
    fmCustomerID = models.ForeignKey('FmCustomer', on_delete=models.SET_NULL, null=True, blank=True,verbose_name="Customer")
    fmCustomerLocationID = models.ForeignKey('FmCustomerLocation', on_delete=models.SET_NULL, null=True, blank=True,verbose_name="CustomerLocation")
    dateSubmitted = models.DateField(auto_now_add=True, null=True, blank=True)
    lastname = models.CharField(max_length=500, blank=True, null=True)
    firstname = models.CharField(max_length=500, blank=True, null=True)
    middleInitial = models.CharField(max_length=500, blank=True, null=True)
    bodyTemperature = models.FloatField()
    fmCustomerSectionID = models.ForeignKey('FmCustomerSection', on_delete=models.SET_NULL, null=True, blank=True, verbose_name="CustomerSection")
    contact_number = models.CharField(max_length=500, blank=True, null=True)
    employee_number = models.CharField(max_length=500, blank=True, null=True)
    address = models.CharField(max_length=500, blank=True, null=True)
    email = models.CharField(max_length=500, blank=True, null=True)
   

class TrCustomerEmployeeSupplierSubmittedRecords(models.Model):
    fmCustomerID = models.ForeignKey('FmCustomer',on_delete=models.SET_NULL, null=True, blank=True,verbose_name="Customer")
    fmCustomerLocationID = models.ForeignKey('FmCustomerLocation', on_delete=models.SET_NULL, null=True, blank=True,verbose_name="CustomerLocation")
    dateSubmitted = models.DateField(null=True, blank=True)
    firstname = models.CharField(max_length=500, blank=True)
    middleInitial = models.CharField(max_length=500, blank=True)
    lastname = models.CharField(max_length=500, blank=True)
    bodyTemperature = models.FloatField()
    fmCustomerSectionID = models.ForeignKey('FmCustomerSection',  on_delete=models.SET_NULL, null=True, blank=True,verbose_name="CustomerSection")
    employee_number = models.CharField(max_length=500, blank=True, null=True)
    contactNumber = models.CharField(max_length=500, blank=True, null=True)
    address = models.CharField(max_length=500, blank=True, null=True)
    email = models.CharField(max_length=500, blank=True, null=True)
    


class TrEmployeeSuppliersFeedbackQuestionsSubmittedRecords(models.Model):

    fmCustomerEmployeeSupplierID = models.ForeignKey('FmCustomerEmployeeSupplier',on_delete=models.SET_NULL, null=True, blank=True,
                                                     verbose_name="CustomerEmployeeSupplier")
    fmCustomerID = models.ForeignKey('FmCustomer',on_delete=models.SET_NULL, null=True, blank=True,verbose_name="Customer")
    dateSubmitted = models.DateField(auto_now_add=True, null=True, blank=True)
    q1Answer = models.CharField(max_length=500, blank=True, null=True)
    q2Answer = models.CharField(max_length=500, blank=True, null=True)
    q2AnswerDetailed = models.CharField(max_length=500, blank=True, null=True)
    q3Answer = models.CharField(max_length=500, blank=True, null=True)
    q4Answer = models.CharField(max_length=500, blank=True, null=True)
    q4AnswerDetailed = models.CharField(max_length=500, blank=True, null=True)
    q5Answer = models.CharField(max_length=500, blank=True, null=True)
    q5Ubo = models.BooleanField(default=False, blank=True, null=True)
    q5Lagnat = models.BooleanField(default=False, blank=True, null=True)
    q5Sipon = models.BooleanField(default=False, blank=True, null=True)
    q5LBM = models.BooleanField(default=False, blank=True, null=True)
    q5HirapSaPaghinga = models.BooleanField(default=False, blank=True, null=True)
    q5PananakitngUlo = models.BooleanField(default=False, blank=True, null=True)
    q5PananakitngKatawan = models.BooleanField(default=False, blank=True, null=True)
    q5PagkawalaNgPangAmoyatPanlasa = models.BooleanField(default=False, blank=True, null=True)
    q6visitedPlacesDuringNonWorkingDays = models.CharField(max_length=500, blank=True, null=True)
   
这是我的html

{% for feedback in feedbacks %}

                    <tr>
                    <td> {{feedback.id}} </td> 
                    <td> {{feedback.inputdate}} </td>
                    <td> {{feedback.fmCustomerEmployeeSupplierID.firstname}} {{feedback.fmCustomerEmployeeSupplierID.middleInitial}} {{feedback.fmCustomerEmployeeSupplierID.lastname}}</td>
                    <td> {{feedback.fmCustomerEmployeeSupplierID.fmCustomerLocationID}} </td>
                    <td> {{feedback.fmCustomerID.fmCustomerLocationID}} </td>
                    <td> {{feedback.fmCustomerEmployeeSupplierID.contactNumber}} </td>
                     <td> {{feedback.fmCustomerID.section}} </td>
                    <td> {{feedback.fmCustomerEmployeeSupplierID.bodyTemperature}} </td> ====> this td is for model `TrCustomerEmployeeSupplierSubmittedRecords`
                    <td>{{feedback.q1Answer}}</td>
                </tr>

不能有两个行数不相同的查询的并集

您正在尝试建立以下联盟:

  • t员工供应商反馈问题提交记录(19行)
  • TrCustomerEmployeeSupplierSubmittedRecords(12行)
你不能这么做。
我所能告诉你的是,你应该只选择你需要在你的最终查询中得到的字段,以便在查询的两边有相同数量的字段。可能使用值列表或仅使用queryset方法。

这并不复杂,错误是不言自明的:


每个联合查询必须具有相同的列数
您的代码非常混乱,以至于您没有看到它:

TrCustomerEmployeeSupplierSubmittedRecords
tremployeeSuppliers反馈问题SubmittedRecords
不同

看看这个:

FmCustomerEmployeeSupplier中的
联系电话
TrCustomerEmployeeSupplierSubmittedRecords

您的代码应该是:

companys\u name=FmCustomerUsers.objects.filter(
user=request.user.id
).values\u list('fmCustomerID\u公司名称')
employees\u id=fmcustomereemployeesupplier.objects.filter(
fmCustomerID\uuuu company\u name\uuuuu in=companys\u name
).values\u列表(“id”)
员工反馈=t员工供应商反馈问题提交记录.objects.filter(
fmCustomerID\uuuu company\u name\uuuuu in=companys\u name,
fmCustomerEmployeeSupplierID\uuuu in=员工id
)
客户反馈=TrCustomerEmployeeSupplierSubmittedRecords.objects.filter(
fmCustomerID\uuuu company\u name\uuuuu in=companys\u name,
fmCustomerEmployeeSupplierID\uuuu in=员工id
)
反馈=员工反馈。工会(客户反馈)
您只需在
employees\u feedback
customers\u feedback
上添加一个
values\u列表
,并使用所需的相同字段


您需要遵循PEP8,因为很难读懂您的意思

您能提供一个例子吗?im my model
TremployeeSuppliers反馈问题提交记录
我没有
fmCustomerEmployeeSupplierID
字段每个联合查询必须具有相同的列数第1行:…=U2。“id”)其中U0。“用户id”=2)联合(选择“追踪…所以,你们不能做你们想做的事,概念问题而不是代码问题(创建抽象模型将在这里帮助你们)有没有办法在不创建抽象模型的情况下得到我想要的?说实话,你所有的代码都写得不好,重新开始,合理化它。
FmCustomerEmployeeSupplier
TrCustomerEmployeeSupplierSubmittedRecords
都是一样的,没有意义,因为你想要
TrCustomerEmployeeSupplierSubmittedRecords
s
t员工供应商反馈问题提交记录
相同
File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py" in _execute
  84.                 return self.cursor.execute(sql, params)

The above exception (each UNION query must have the same number of columns
LINE 1: ...U2."id") WHERE U0."user_id" = 2)))) UNION (SELECT "TracingAp...
                                                             ^
) was the direct cause of the following exception:

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\exception.py" in inner
  34.             response = get_response(request)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\User\Desktop\ContractTracingProject\TracingSettings\TracingApp\views.py" in report1
  1169.     return render(request, "TracingApp/report1.html", {"feedbacks": feedback})

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\shortcuts.py" in render
  36.     content = loader.render_to_string(template_name, context, request, using=using)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\loader.py" in render_to_string
  62.     return template.render(context, request)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\backends\django.py" in render
  61.             return self.template.render(context)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
  171.                     return self._render(context)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in _render
  163.         return self.nodelist.render(context)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
  937.                 bit = node.render_annotated(context)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
  904.             return self.render(context)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\defaulttags.py" in render
  166.             len_values = len(values)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py" in __len__
  256.         self._fetch_all()

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py" in _fetch_all
  1242.             self._result_cache = list(self._iterable_class(self))

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\query.py" in __iter__
  55.         results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
  1100.             cursor.execute(sql, params)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py" in execute
  99.             return super().execute(sql, params)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py" in execute
  67.         return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py" in _execute_with_wrappers
  76.         return executor(sql, params, many, context)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py" in _execute
  84.                 return self.cursor.execute(sql, params)

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\utils.py" in __exit__
  89.                 raise dj_exc_value.with_traceback(traceback) from exc_value

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\utils.py" in _execute
  84.                 return self.cursor.execute(sql, params)

Exception Type: ProgrammingError at /report1/
Exception Value: each UNION query must have the same number of columns
LINE 1: ...U2."id") WHERE U0."user_id" = 2)))) UNION (SELECT "TracingAp...
                                                             ^