python - Django:即使存在也未加载多对多关系
问题描述
我们为电子商务网站运行 Django 服务器,在其中进行了数千次查询,最后我们收到许多错误,例如:“FieldError: Cannot resolve keyword 'stockrecords' into field. Choices are: ...” 我知道这个每当我们尝试通过模型中不存在但确实存在的字段来连接表时,都会引发错误。
查询大部分时间都有效,但仅在某些情况下无效。
模型 StockRecord 的定义是:
class StockRecord(models.Model):
product = models.ForeignKey(
'catalogue.Product',
on_delete=models.CASCADE,
related_name="stockrecords",
verbose_name=_("Product"))
num_in_stock = models.PositiveIntegerField(
_("Number in stock"), blank=True, null=True)
并且产品的定义不包括对库存记录的任何引用。
调用时会产生错误:
class ProductQuerySet(models.query.QuerySet):
def with_stock(self):
return self.filter(stockrecords__num_in_stock__gt=0)
喜欢:
p = Product.objects.get(id=1)
# Here the exception raises
products_filtered = p.with_stock().all()
谢谢!!
解决方案
推荐阅读
- python - 如何使用 pyqt4 减小 gif 大小
- node.js - ref 是什么意思 mongooose
- fiware - 如何在 OpenMTC 和 Orion Context Broker 中删除整个数据流
- node.js - 詹金斯需要很长时间才能完成一些构建?
- python - Panda 在 Windows 共享服务器中找不到 CSV 文件
- c# - helixtoolkit (BEPU?) 物理对象
- node.js - MongoDB合并三个集合并得到结果
- javascript - 使用正则表达式删除连续的重复字符
- powershell - Powershell 从 Box 中获取链接
- spring - 在 Spring Boot 中配置 Kafka 消费者 = 失去对消费者行为的控制?