You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从djangocms-blog的Post对象中获取文章扩展字段?

获取djangocms-blog文章扩展字段的方法

djangocms-blog官方推荐通过继承AbstractPostExtension实现文章扩展,获取扩展字段主要有两种实用方式:

方式一:直接通过反向关联获取

如果你的扩展模型(比如MyPostExtension)是基于AbstractPostExtension创建并注册的,Post对象会自动生成一个小写模型名的反向关联属性,直接访问即可:

$ python3 manage.py shell
>>> from djangocms_blog.models import Post
>>> from yourapp.models import MyPostExtension  # 导入你的扩展模型
>>> post = Post.objects.first()
>>> # 替换成你的扩展字段名
>>> post.mypostextension.custom_field

方式二:使用get_extension方法(更稳妥)

这种方式可以避免扩展实例不存在时抛出异常,适合做安全判断:

$ python3 manage.py shell
>>> from djangocms_blog.models import Post
>>> from yourapp.models import MyPostExtension
>>> post = Post.objects.first()
>>> # 获取扩展实例,不存在则返回None
>>> extension = post.get_extension(MyPostExtension)
>>> if extension:
...     print(extension.custom_field)  # 访问目标字段

注意事项

  • 确保你的扩展模型已经通过register_extension()方法完成注册
  • 如果是直接修改Post模型添加字段(不推荐官方扩展方式),可以直接通过post.你的字段名访问

内容的提问来源于stack exchange,提问作者sodimel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:41:32