问题标签 [django-generic-relations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 使用 GenericForeignKey 预取模型
我有一个数据结构,其中 aDocument
有很多Blocks
只有一个Paragraph
或Header
. 一个简化的实现:
(请注意,与上面的实现不同,实际上需要在单独的模型中使用Paragraph
和。)Header
我使用jinja2
模板来为文档创建一个 Latex 文件。尽管 jinja 为每个块和段落或标题执行新的数据库查询,但模板化很慢。
(content_block.latex_text()
是将 HTML 字符串转换为 Latex 字符串的函数)
因此我想预取script.blocks
和blocks.content_block
. 我知道在 Django 中有两种预取方法:
select_related()
执行JOIN
查询,但仅适用于ForeignKeys
. 它适用于script.blocks
但不适用于blocks.content_block
.prefetch_related()
也可与 GenericForeignKeys 一起使用,但如果我正确理解文档,它一次只能获取一个ContentType
,而我有两个。
有什么方法可以在这里执行必要的预取吗?谢谢您的帮助。
django - 使用 if 语句检查内容类型以确定要执行的操作
我有 django 模型与关联的通用关系。
在大多数情况下,通用关系与这两个模型之一相关联
在视图函数中,我试图找出特定实例之间的模型Title
以及JobPosition
与特定SectionLine
实例相关联的模型,以便我可以确定下一步要做什么。
我现在可以访问SectionLine.content_type
以查看内容类型(例如,它打印titles_and_names | title
- 应用程序名称是titles_and_names
),但我不知道将其与什么进行比较......
基本上,if SectionLine.content_type == ???
python - 这个“.set() 东西在 django 的通用关系中是如何工作的?如果我想使用 python shell 创建一个对象
这是我的模型
User, Business 与 Deposit 有通用关系
Deposit
当我使用 Python shell创建对象时
我收到这个错误
如何解决这个问题?