【发布时间】:2023-04-09 12:15:01
【问题描述】:
我正在尝试获取两个查询集的详细信息并显示在我的数据表上。我可以显示第一个查询集的详细信息,但不能显示第二个查询集的详细信息,这也取决于第一个查询集。
我的views.py函数;
def truck_list(request):
q_data = quar_contacts.objects.all().filter(.....)
hot_details = []
for d in q_data:
h_details = truck_contacts.objects.filter(p_contacts=d.id)
hot_details.append(h_details)
my_list_data = zip(q_data, hot_details)
data = {'quar_data': my_list_data}
return render(request, 'syst/truck_list.html', data)
我可以将 zip 列表的详细信息打印为元组,即 data = tuple(my_list_data) 并查看数据。
然后是数据表正文部分上的我的 truck_list 模板:
<tbody>
{% for q_data, hot_details in quar_data %}
<tr>
<td>{{ q_data.last_name }}</td>
<td>{{ q_data.first_name }}</td>
<td>{{ q_data.age }}</td>
<td>{{ q_data.sex }}</td>
<td>{{ q_data.phone_number }}</td>
<td>{{ hot_details.hotel_name}}</td>
<td>{{ hot_details.date_check_in }}</td>
<td>{{ hot_details.created_by }}</td>
</tr>
{% endfor %}
</tbody>
如何在我的数据表上显示 hot_details(hotel_name 和 date_checked_in)。我如何为每个联系人循环提供哪些酒店详细信息。
有没有更简单的方法来实现这一点?
我的模特:
class quar_contacts(models.Model):
first_name = models.CharField(max_length=50)
middle_name = models.CharField(max_length=50, blank=True)
last_name = models.CharField(max_length=50)
sex = models.CharField(max_length=50)
dob = models.DateField(default=date.today)
passport_number = models.CharField(max_length=50, blank=True)
created_by = models.ForeignKey(User, on_delete=models.DO_NOTHING, related_name='quar_updated_by')
class truck_contacts(models.Model):
patient_contacts = models.ForeignKey(quar_contacts, on_delete=models.DO_NOTHING, related_name='truck_contact')
vehicle_registration = models.CharField(max_length=50, blank=True)
company_name = models.CharField(max_length=50, blank=True)
hotel = models.CharField(max_length=50, blank=True)
hotel_town = models.CharField(max_length=50, blank=True)
date_check_in = models.DateField(default=date.today)
date_check_out = models.DateField(default=date.today)
另外,你如何获得'created_by'值,它是用户表的外键?
【问题讨论】:
标签: python django django-models django-views django-templates