簡體   English   中英

django:通過view.py中的向后關系而不是模板來檢索對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM