0
我有以下型號,的Django如何使用在許多欠查詢選擇一對多的關係
class TblMaterials(models.Model):
name = ...
....
class TblCategoris(models.Model):
name = ...
....
class TblMaterialCategories(models.Model):
tbl_categories = models.ForeignKey(TblCategories, blank=True, null=True)
tbl_materials = models.ForeignKey('TblMaterials', blank=True, null=True)
並在我的主頁我想打印的所有材料和內相關材料類別。顯然,可能有一些材料沒有任何類別。
在我看來我嘗試類似:
TblMaterials.objects.all().select_related('tblmaterialcategories_set')
和模板:
{%for mat in materials%}
{{mat.name }}
{%for cat in mat.tblmaterialcategories_set.all %}
{{cat.tbl_categories.name}} ,
{%endfor%}
{%endfor%}
我不認爲在_set項目select_related作品。 我想實現這樣的事情,而不會對每個項目進行查詢。如果我可以將其他字段添加到材質查詢集並像mat.categories一樣訪問它併爲其循環,那麼它也是appriciated。
什麼是顯示所有材料及其類別的最佳方式?
謝謝。
您應該使用'prefetch_related',而不是'select_related'。 –