【发布时间】:2018-12-04 08:45:02
【问题描述】:
我是 Django CMS 的新手,我继承了一个具有以下规范的网站:
- Django 1.10.8
- Django CMS 3.4.5
- Python 2.7
很遗憾,目前没有升级选项。另外,如果我的术语有误,请原谅 - 我会很感激更正。
我有一个带有 Staff 和 StaffTranslation (等)模型的员工应用程序,我有一项任务来更新管理员以允许向每个 StaffTranslation 添加一个或多个链接。但是,我无法确定执行此操作的最佳方法以及使用哪些组件。
我已经确定了 djangocms-link 插件,这可能是一种可能性,但我找不到有关如何将多个实例添加到模型或管理页面的说明。此外,最新版本至少需要 Django 1.11。
我还发现了PageSmartLinkField——它看起来很聪明——但我无法发现如何将它与StaffTranslation 对象的数据集成或如何在该对象的管理页面上显示它。
对于如何构建它的任何建议,我将不胜感激 - 这似乎是一个足够简单的任务,我想我只是缺少一两块拼图。
最终目的是在StaffTranslation(有自己的管理页面)上有零个或多个链接,并且能够为每个链接添加至少 url 和链接文本。如果有一些 UI 助手会很聪明,允许轻松选择内部链接,但文本字段就可以了。
编辑:StaffTranslation 模型
class StaffTranslation(TimeStampedModel):
staff = models.ForeignKey(Staff, related_name='translations')
language = models.ForeignKey(Language)
specialist_work_title = HTMLField(max_length=128, null=True, blank=True) # SpecialistWorkTitle
description = HTMLField(null=True, blank=True) # PersonText
experience = HTMLField(null=True, blank=True) # Experience
phone_office = models.CharField(max_length=128, null=True, blank=True) # OfficePhone
phone_cell = models.CharField(max_length=128, null=True, blank=True) # CellPhone
mentions = HTMLField(null=True, blank=True) # Mentions
education = HTMLField(null=True, blank=True) # Education
other_qualifications = HTMLField(null=True, blank=True) # OtherQualifications
meta_title = models.TextField(null=True, blank=True) # MetaTitle
meta_keywords = models.TextField(null=True, blank=True) # MetaKeywords
meta_description = models.TextField(null=True, blank=True) # MetaDescription
legacy_data = models.TextField(null=True, blank=True)
objects = querysets.StaffTranslationQuerySet.as_manager()
# I would like to add something here like links = models.ForeignKey(Link, related_name='links') - so should I make a Link model and add as a many to many relation, and how do I integrate that into the admin?
我省略了模型上定义的函数。
再一次,升级会很好,但最早要到夏天才能实现,现在必须解决这个任务。 :)
【问题讨论】:
-
什么是
StaffTranslation?可以分享一下模型吗?如果您想添加多个链接,听起来您的模型最好有一个PlaceholderField,以便可以通过 CMS 的结构视图添加(链接)插件。 -
如果可能,请使用 python3+ 和 django2+。设置一个虚拟环境并使用它。显示模型,我怀疑你需要一个插件来解决这个问题
-
@markwalker_ 我添加了模型作为示例。介意给我一个使用 PlaceholderField 或教程链接的提示吗?
-
@peterretief 升级尚未获得批准,未来六个月内不会发生。虽然会很好...... :)
-
@Calle 如果你有 6 个月的时间等待升级 Django 2.2 (LTS),那么这实际上是个好时机。
标签: python django django-cms