我有两种模式:
class Customer(models.Model):
user = models.ForeignKey(User)
region_id = models.IntegerField(blank=True, null=True)
company_name = models.CharField(max_length=45, blank=True)
class Enquiry(models.Model):
customer = models.ForeignKey(User)
region_id = models.IntegerField(blank=True, null=True)
status = models.CharField(max_length=45, null=False, blank=False)
date_of_enquiry = models.DateField(auto_now_add=True)
模板应该看起来像
enquiry_id Company_name region_id date_of_enquiry
1 xyz abc 12/2/2015
2 mno pqr 12/2/2015
两个模型都由customer_id
引用很抱歉给您带来不便,
让我清楚这里的疑问
我在查询表中查询过滤器为region_id,状态如下(匹配登录用户region_id与查询表region_id和查询表的状态) received_object = Enquiry.objects.filter(region_id = user_obj.region_id,status =“查询已发送”)
我得到像这样的输出
enquiry_id region_id date_of_enquiry
1 abc 12/2/2015
2 pqr 12/2/2015
但我想在表格中显示公司名称
所以我把查询写成
userAdded_Object = []
对于received_object中的项目: userAdded_object.append(Customer.objects.get(USER_ID = item.customer_id))
并且在单个for循环模板中迭代两个查询集不起作用
答案 0 :(得分:0)
这是一个非常非常基本的问题,您几乎可以直接从文档中的示例中提取;请花时间阅读它们。这就是为什么你的问题被低估了。
需要代码帮助的问题应至少提供您尝试过的无效代码。要求人们为你编写代码是不受欢迎的,但今天早上我感觉很慷慨:
查看:
def your_view(request):
enquiries = Enquiry.objects.select_related('customer').all()
return render(request, 'your-template.html', {'enquiries': enquiries})
表:
<table>
{% for enquiry in enquiries %}
<tr>
<td>{{ enquiry.id }}</td>
<td>{{ enquiry.customer.company_name }}</td>
<td>{{ enquiry.region }}</td>
<td>{{ enquiry.date_of_enquiry }}</td>
</tr>
{% empty %}
<tr>
<td>Sorry, no enquiries.</td>
</tr>
{% endfor %}
</table>
但是,customer
上的Enquiry
字段指向User
,而不是Customer
,因此您需要解决此问题。如果你还没有,你真的应该通过Django tutorial。