Django中的prefetch_related()ForeignKey反向查找?

Django中的prefetch_related()ForeignKey反向查找?,django,orm,foreign-keys,foreign-key-relationship,Django,Orm,Foreign Keys,Foreign Key Relationship,我有两种型号: class Company(models.Model): ... class Supplier(models.Model): company = models.ForeignKey(Company, null=True, related_name="suppliers") 如何让所有公司与其相关供应商合作 我试过: Company.objects.prefetch_related('suppliers') Company.objects.prefetch_rel

我有两种型号:

class Company(models.Model):
    ...

class Supplier(models.Model):
  company = models.ForeignKey(Company, null=True, related_name="suppliers")
如何让所有公司与其相关供应商合作

我试过:

Company.objects.prefetch_related('suppliers') 
Company.objects.prefetch_related('supplier_set') 
Company.objects.prefetch_related('suppliers').all()
...
我做错了什么

感谢您

获取供应商,这样当您执行
company.suppliers.all()
操作时,您就不会在
company.objects.all()
上再次受到SQL攻击。此后,您可以正常访问供应商:

companies = Company.objects.all().prefetch_related('suppliers')

for company in companies:
    # Does not require a new SQL query
    suppliers = company.suppliers.all()
获取供应商,这样当您执行
company.suppliers.all()
操作时,您就不会在
company.objects.all()
上再次受到SQL攻击。此后,您可以正常访问供应商:

companies = Company.objects.all().prefetch_related('suppliers')

for company in companies:
    # Does not require a new SQL query
    suppliers = company.suppliers.all()

有没有办法包含额外的SQL查询?我需要让供应商的公司使用它的模板后。尝试了
select_related('suppliers')
,但我得到:
django.core.exceptions.FieldError:select_related:'suppliers'中给出的字段名无效。选择是:(无)
嗯,这是另一个问题。您正在使用
公司
上的
选择相关
?在
Supplier
模型上是否仍有
相关的\u name='suppliers'
?是否有其他SQL查询方法?我需要让供应商的公司使用它的模板后。尝试了
select_related('suppliers')
,但我得到:
django.core.exceptions.FieldError:select_related:'suppliers'中给出的字段名无效。选择是:(无)
嗯,这是另一个问题。您正在使用
公司
上的
选择相关
?在
供应商
模型上是否仍有
相关的\u name='suppliers'