[英]how do I fix PEP fields.E339 in django models through/through_fields?
我正在嘗試通過中間模型將漏洞 cve 模型與產品鏈接,以根據產品/cve 鏈接/匹配每個漏洞
class Vulnerability(models.Model):
cveid = models.CharField(max_length=32, null=True, blank=True)
affected_products = models.ManyToManyField(
Product,
through='ProductVulnerability',
through_fields=("product", "vulnerability")
)
class ProductVulnerability(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
vulnerability = models.ForeignKey(Vulnerability, on_delete=models.CASCADE)
class Meta:
unique_together = [("product", "vulnerability")]
service | ERRORS:
service | api.Vulnerability.affected_products: (fields.E339) 'ProductVulnerability.product' is not a foreign key to 'Vulnerability'.
service | HINT: Did you mean one of the following foreign keys to 'Vulnerability': vulnerability?
service | api.Vulnerability.affected_products: (fields.E339) 'ProductVulnerability.vulnerability' is not a foreign key to 'Product'.
service | HINT: Did you mean one of the following foreign keys to 'Product': product?
service | SystemCheckError: System check identified some issues:
正如記錄和提示所建議的那樣
through_fields 接受一個 2 元組 ('field1', 'field2'),其中 field1 是定義 ManyToManyField 的 model 的外鍵名稱,field2 是目標 model 的外鍵名稱。
所以在你的情況下
affected_products = models.ManyToManyField(
Product,
through='ProductVulnerability',
through_fields=("vulnerability", "product")
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.