如何在django中合并/连接两个结果集/表?(How to merge/join two resultset/table in django?)

编程入门 行业动态 更新时间:2024-10-27 16:36:24
如何在django中合并/连接两个结果集/表?(How to merge/join two resultset/table in django?)

我正在尝试显示属于同一公司的员工列表。 所以例如使用给定的URL localhost / app / company-slug /我想显示一个行列表,其中包含所有三个模型的详细信息:

| first_name | last_name | company-slug | employee_status | employee_type |

有了这个模型,我如何检索这种数据?

class Employee(models.Model): company = models.ForeignKey(Company) class EmployeeProfile(models.Model): employee = models.OneToOneField(Employee) # Base first_name = models.CharField(max_length=31) middle_name = models.CharField(max_length=31, null=True, blank=True) class EmployeeJob(models.Model): employee = models.OneToOneField(Employee) # Employment status employment_status = models.ForeignKey(EmploymentStatus, null=True, blank=True) employment_type = models.ForeignKey(EmploymentType, null=True, blank=True)

编辑1:

我不知道模板标签中是否可以连接表。 这是@Shang Wang建议的工作解决方案

{% for employee in employees %} <tr class="table-row clickable" data-href="{% url 'hrm:detail' company.slug employee.pk %}"> <td><strong>A</strong></td> <td>{{ employee.employeeprofile.first_name }} {{ employee.employeeprofile.last_name }}</td> <td>{{ employee.employeejob.employment_status }}</td> <td>{{ employee.employeejob.employment_type }}</td> <td>4</td> </tr> {% endfor %}

I'm trying to display a list of employees that are part of the same company. So for example with the given URL localhost/app/company-slug/ I'd like to show a list of rows where there are the details of all three models:

| first_name | last_name | company-slug | employee_status | employee_type |

With this models, how I can retrieve this kind of data?

class Employee(models.Model): company = models.ForeignKey(Company) class EmployeeProfile(models.Model): employee = models.OneToOneField(Employee) # Base first_name = models.CharField(max_length=31) middle_name = models.CharField(max_length=31, null=True, blank=True) class EmployeeJob(models.Model): employee = models.OneToOneField(Employee) # Employment status employment_status = models.ForeignKey(EmploymentStatus, null=True, blank=True) employment_type = models.ForeignKey(EmploymentType, null=True, blank=True)

Edit 1:

I didn't know was possible join tables within template tags. This is a working solution suggested by @Shang Wang

{% for employee in employees %} <tr class="table-row clickable" data-href="{% url 'hrm:detail' company.slug employee.pk %}"> <td><strong>A</strong></td> <td>{{ employee.employeeprofile.first_name }} {{ employee.employeeprofile.last_name }}</td> <td>{{ employee.employeejob.employment_status }}</td> <td>{{ employee.employeejob.employment_type }}</td> <td>4</td> </tr> {% endfor %}

最满意答案

我假设你已经在当前页面中有了company的对象,让员工变得非常简单:

employees = Employee.objects.filter(company=company) for employee in employees: print employee.employeeprofile.first_name print employee.employeeprofile.last_name print employee.employeejob.employment_status print employee.employeejob.employee_type

关于OneToOneField的 Django文档。

I assume you already had an object for company in current page, getting the employees is really easy:

employees = Employee.objects.filter(company=company) for employee in employees: print employee.employeeprofile.first_name print employee.employeeprofile.last_name print employee.employeejob.employment_status print employee.employeejob.employee_type

Django doc about OneToOneField.

更多推荐

本文发布于:2023-08-07 14:52:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1464916.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:两个   如何在   django   merge   resultset

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!