Django的ORM系统,包括其查询集和模型系统。
所以我最近开始使用 Django,我遇到了书籍和作者之间多对多关系的情况 - 作为一个简单的例子 - 一本书可以有多个作者。 类书(模型.模型):
Django admin 内联表格管理中的多对多字段不适用于关系双方
问题 考虑到该字段具有参数并且我无法更改数据库,如何将 m2m 字段集成到 modelAdmin 中?或者我如何使用内联表格管理和添加更多按钮?
我有两个1:N相关的表。 我只想获取每个房地产模型的一个最新交易模型。 房地产类(gis_models.Model): 类元: db_table = "房地产" ...
我想通过电子邮件查找用户,而不必担心大写字母。 我该怎么做? 我试过 客户 = Customer.objects.get(email__lower="[email protected]") 然后去...
如何在 Django Rest Framework 中映射foreignKey模型值
模型.py 类项目(模型.模型): 名称 = models.CharField(max_length=100) # other_no_need_translate = models.CharField(max_length=100) 类 Itemi18n(models.Model): 起源=模型。
Django 模型方法 - create_or_update
与 get_or_create 类似,我希望能够在 Django 中 update_or_create 。 到目前为止,我使用的方法与@Daniel Roseman 在这里的做法类似。不过,我还想做更多
Django:“缺少 1 个必需的位置参数:'lookup _name'”,当它不丢失时?
我正在使用 Django 3.1 ORM 并正在运行(使用 pytest)涉及复杂嵌套查询的测试。我得到这个失败: 自我 = 我正在使用 Django 3.1 ORM 并正在运行(使用 pytest)涉及复杂嵌套查询的测试。我遇到这个失败: self = <django.db.models.expressions.Subquery object at 0x0000027CE184D2B0> lookup = 'lte' def get_lookup(self, lookup): > return self.output_field.get_lookup(lookup) E TypeError: get_lookup() missing 1 required positional argument: 'lookup_name' 要调用的 get_lookup(lookup) 是在 django.db.models.query_utils.RegisterLookupMixin 中定义的(据我所知)为 def get_lookup(self, lookup_name): ... 我的测试的相应源语句涉及类似的内容 value = now() - OuterRef(OuterRef('myattr2')) * timedelta(days=1) queryset2.annotate(has_x=Exists(queryset.filter(myattr__lte=value))) 并且围绕它还有更多查询构造代码。 我的调试器告诉我 self.output_field 是一个 DateTimeField 对象。 总体来说: 上下文是一个 Exists 子查询。 查找是 'lte'(按预期)。 该调用提供 DateTimeField 作为 self(来自 output_field)和 'lte' 作为 lookup_name。 要调用的方法需要 self 和 lookup_name。 通话应该可以,不是吗? TypeError在哪里? @AlexandrTatarinov 的评论是正确的;这也是我的问题; myattr 是这样创建的计算属性: annotate(myattr=Subquery(queryset3, output_field=DateTimeField)) 但由于某种原因,Django 坚决想要一个输出字段的字段实例,而不是字段类。 所以 output_field=DateTimeField() 有效,但我的 output_field=DateTimeField 不起作用。 添加括号,我的问题就解决了。 讽刺的是,在这种情况下甚至不需要output_field=!删除它和添加括号一样有效。 反思我的工作过程,这些是我的错误: 我在调试器中检查了是否存在正确的 self - 但显然不够仔细,将 DateTimeField 类误认为是 DateTimeField 实例。 我在调试之前的问题时插入了 output_field=DateTimeField 子句,但当它没有帮助时就没有再将其取出。坏主意。 当我写下我的问题时,我在写下犹豫了 “我的调试器告诉我 self.output_field 是一个 DateTimeField 对象。” 并问自己 “我知道它是一个 DateTimeField 对象而不是 DateTimeField类?”,但我没有再去调试器中查看,我只记得我检查过它并感到满意。 所以我带回家的课程是: (来自第2点):不要做半生不熟的事情。 (来自数字 1 和 3):尽可能少地相信自己。
从 OneToOne 用户模型加载时,Django 管理非常慢
我认为我做的管理模型是错误的,因为加载需要大约 30 秒,我认为这是因为我的 sql 查询效率太低,并且可能会创建比需要的更多的查找。是...
为什么 Django 在 get_object_or_404 上添加 LIMIT 21
型号 类实体(模型.模型): uuid = models.UUIDField(editable=False, unique=True, default=uuid.uuid4) Institute_name = models.CharField(max_length=100, null=False) 所有者名称=模组...
我有类似 {product_id: count} 的字典。 例如 cart_items = {1: 150}。该字典代表客户购物篮。 我还有带有计数字段的产品模型。它代表库存余额。 我想要...
使用psycopg2 sql.SQL对象调用cursor.execute时出错
我正在尝试在 django 中使用 psycopg2 执行原始更新查询。代码如下: 从 django.db 导入连接 从 psycopg2 导入 sql model_instances_to_update = [] 对于 model_instance...
获取 Django 中 .exists() 查询生成的 SQL 语句
是否可以在Django中打印queryset.exists()语句生成的SQL?
我创建了一个模型,并且正在为其渲染默认/未修改的模型表单。仅此一项就生成了 64 个 SQL 查询,因为它有相当多的外键,而这些查询又具有更多的外键......
Django ORM 查询执行简单的 ORDER BY 聚合
鉴于这张简单的表格, 支付类(模型.模型): pay_date = models.DateField("付款日期") 金额 = models.DecimalField(max_digits=7,decimal_places=2) 我想制作一个标签...
在进行 prefetch_lated 时选择使用哪个模型管理器?
我的 Django 应用程序中有一个 Product 模型,它使用自定义模型管理器,其中包含所有 prefetch_lated 语句: 类 ProductManager(models.Manager): def get_queryset(self): ...
我正在开发一个 django 项目,并从其他开发人员手中接管该项目,因为他们已经离开了该项目。我遇到了一个查询,我无法理解它是如何工作的,这是......
检测Django相关对象是否已通过select_lated预取
假设我有以下型号: 类产品: 名称 = models.CharField(max_length=128) 产品版本类: 名称 = models.CharField(max_length=128) 产品 = models.ForeignKey(
如果我有这样的课程: 类名:field1 = ... field2 = ... ... 我不知道用户应该给出什么字段或模型,因此键将是模型中的字段名称和值...
我正在尝试查询所有过期的预订,但我没有像 end_date 这样的任何字段,我有 start_date 和总行程__days。 这是我的查询: 导入日期时间 从 django.db.models 导入...