跳转到主要内容

时间轴

项目描述

这为Timelines JS 3提供后端。您可以使用外部链接到媒体或链接到内部对象。

初始设置

  1. 通过pip安装

    pip install django-timelines
  2. 修改INSTALLED_APPS

    INSTALLED_APPS = [
        ...
        "contentrelations",
        "timelines",
    ]
  3. 在迁移应用程序之前设置TIMELINES_BACKGROUND_IMAGE_MODEL设置。此模型应该是您使用的照片管理应用程序。此设置允许swapper设置该模型与timelines模型之间的关系

    TIMELINES_BACKGROUND_IMAGE_MODEL = "media.Photo"
  4. 设置TIMELINES_SETTINGSBACKGROUND_IMAGE_RELATED_FIELDTIMELINES_BACKGROUND_IMAGE_MODEL上的实际FileFieldImageField

    TIMELINES_SETTINGS = {
        'BACKGROUND_IMAGE_RELATED_FIELD': 'photo',
    }

创建适配器

为了在时间轴中使用现有模型,您需要为它创建一个适配器。适配器允许您自定义或映射Django时间轴所需的信息到您的模型。关于适配器的一些注意事项

  • 模型的适配器不需要与模型在同一个应用程序中。这允许您适应通过pip安装且您无法控制的模型。

  • Django时间轴将在启动时导入每个已安装应用程序的适配器模块。这是一个放置适配器的好地方。

适配器示例

from timelines.registration import registry, TimelineAdapter
from .models import Photo


class PhotoAdapter(TimelineAdapter):
    def get_headline(self):
        return self.instance.title

    def get_clickthrough_url(self):
        return self.instance.get_absolute_url()

    def get_credit(self):
        return self.instance.taken_by

    def get_text(self):
        return self.instance.description

    def get_media_url(self):
        return self.instance.photo.url

    def get_thumbnail(self):
        return self.instance.photo.url

registry.register(Photo, PhotoAdapter)

使用适配器

适配器定义了几个属性及其访问器方法。

  • clickthrough_urlget_clickthrough_url():一个URL,如果提供,将在描述中添加“阅读更多”链接。返回None以省略链接。

  • creditget_credit():提供媒体的信用信息。

  • headlineget_headline():幻灯片的标题。

  • media_urlget_media_url():幻灯片媒体的URL。

  • textget_text():幻灯片的文本。

  • thumbnailget_thumbnail():时间线缩略图。

为了减少您的工作量,适配器足够智能,能够在模型实例上查找属性名。您不需要使用 adapter.get_headline(),只需使用 adapter.headline,这样适配器就可以使用其内部逻辑来获取正确的值。

当您访问所需的属性之一时,适配器首先尝试使用 get_FOO() 方法。如果返回的值是“falsey”_,则适配器会在模型实例上查找属性。因此,如果您的模型已经有一个 text 属性,除非您希望修改值,否则不需要定义 get_text 方法。

定义时间线或幻灯片的媒体

幻灯片和时间线(对于标题幻灯片)都定义了一个要在幻灯片上显示的媒体。Django 时间线允许指定外部URL或内部对象的链接。内部对象链接的好处是它可以为您提供其他字段的值,并且对象的修改会自动出现在时间线上。

即使您指定了内部对象,您仍然可以覆盖该模型适配器提供的值。

  1. 指定媒体

    • 对于外部URL,只需在 媒体URL 字段中输入值。

    • 对于内部对象,从 媒体内容类型 字段中选择模型(只显示已注册适配器的模型)。然后单击放大镜图标以打开一个窗口来浏览对象。您也可以在此处创建一个新对象。

  2. 设置内容字段

    • 对于外部URL,您必须手动设置适当的值。

    • 对于内部对象,每个字段下的帮助文本将告诉您从模型适配器确定的默认值。如果需要,您才需要输入值。

  3. 修改背景 (可选)

    • 单击 使用媒体作为背景 以使用第1步中指定的URL或对象作为幻灯片的背景。

    • 您可以通过指定 背景图像 来指定用作背景的替代图像。

    • 您可以指定背景颜色(默认为白色)。

创建时间线

  1. 按照 定义时间线或幻灯片媒体 中的说明来指定标题幻灯片信息和背景。

  2. 其他信息 部分,您可以更改 缩放,添加 时代(见下文 时代)并将时间线标记为 已发布

向时间线添加幻灯片

  1. 单击 添加另一个幻灯片

  2. 单击放大镜图标。

  3. 选择或创建一个幻灯片。一旦您保存了时间线,您将看到关于幻灯片的摘要数据以及一个编辑幻灯片的链接。

  4. TimelineJS 有能力根据事件的 在同一行或相邻行中组织事件。如果需要,您可以填写组属性。

  5. 如有必要,输入 顺序。幻灯片会自动按日期排序。然而,由于多个事件可能有相同的日期,因此请使用顺序字段进行精细控制。

创建幻灯片

  1. 设置开始日期和可选时间。有关日期的更多信息,请参阅下文 日期、时间和分辨率

  2. 可选设置结束日期和时间。

  3. 根据上面定义时间轴或幻灯片中的媒体设置媒体和内容。

日期、时间和分辨率

您可以指定具有可变分辨率的日期。允许的分辨率包括

  • (例如,1776年)

  • (例如,1776年7月)

  • (例如,1776年7月4日)

  • 日期时间(例如,1776年7月4日下午5:24)

日期按最低分辨率到最高分辨率的顺序排序,具体如下

  • 年分辨率在当年的1月1日之前排序。可以将其视为该年的1月0日。

  • 月分辨率在该年的该月1日之前排序。可以将其视为指定月份的0日。

  • 日期分辨率在该日期午夜之前排序。可以将其视为该日期的-1 AM,因为午夜是0。

  • 日期时间分辨率按时间排序。

时代

时代用于在时间轴导航组件上标记一段时间。时代可以在时间轴对象之间重复使用。它们包括一个开始日期和一个结束日期,以及一个可选的标签。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

此版本没有可用的源分发文件。请参阅生成分发存档的教程

构建分发

django_timelines-0.3-py2-none-any.whl (53.8 kB 查看哈希

上传时间 Python 2

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面