[英]django: Retrieve object via backwards relationship in view.py, not template
刚开始用python编程,我遇到了以下问题。 我有一个显示供应商详细信息的模板,每个供应商都有员工,并且在模板页面上,我想显示员工的姓名。 我知道如何在模板中执行此操作,但是如何在视图中执行此操作?
楷模:
class Supplier(models.Model):
co_name = models.CharField(max_length=100)
co_city = models.CharField(max_length=100)
co_state = models.CharField(max_length=2)
class Supplieremployees(models.Model):
supplier = models.ForeignKey(supplier)
expe_fname = models.CharField(max_length=50)
意见:
def supplier_detail(request, supplier_id):
s = get_object_or_404(Supplier, pk=supplier_id)
**test = s.supplieremployees_set.all()**
return render_to_response('suppliersdb/supplier_detail.html', {'supplier': s})
模板:
...i dont want to use this way, how do i translate this into the view?
{% for supplieremployees in supplier.supplieremployees_set.all %}
<li>IT Focal: {{ supplieremployees.expe_fname }}</li>
{% endfor %}
**TEST: {{ test.expe_fname }}**
{{test.expe_fname}}没有任何显示
一个Supplier
对象将有一个supplieremployees_set
可以访问反向关系属性:
employees = s.supplieremployees_set
您还可以为ForeignKey
提供related_name
参数,并使用该参数:
class Supplieremployees(models.Model):
supplier = models.ForeignKey(Supplier, related_name='employees')
employees = s.employees
def supplier_detail(request, supplier_id):
s = get_object_or_404(Supplier, pk=supplier_id)
for employee in s.supplieremployees_set.all():
print employee.expe_fname
return render_to_response('suppliersdb/supplier_detail.html', {'supplier': s})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.