跳转到主要内容

建模收藏机构集合的样板。

项目描述

Requirements Status

概述

此软件包包含SFMOMA网站和收藏项目中的常见代码,例如

  • 抽象收藏模型。

  • 数据库路由器。

  • Elastic Search集成。

抽象和具体模型

您必须在项目中的名为collection的应用中实现每个抽象收藏模型的具体版本。

这将允许您为每个项目的模型定义不同的方法和行为(就像代理模型一样),但不会出现任何外键问题(与代理模型一样)。

即使多个项目通过不同的具体collection实现访问共享数据库,也只需在collection_migrations应用中定义一组迁移,任何项目都可以应用它们。

模型导入路径将是相同的,因此您应该可以通过将其从项目中分解到一个独立的应用到另一个来替换不同的具体实现。

使用collection应用的必须包括以下设置,以确保项目之间的数据库是一致的

MIGRATION_MODULES = {
    'collection': 'collection_migrations',
}

这些迁移存储在顶级collection_migrations包中,而不是collection_models.migrations,因为collection_models被安装到项目中,这会混淆Django。

共享艺术品图像

所有项目都应该将artwork_image_path符号链接到公共目录

COLLECTION_MODELS = {
    'artwork_image_path': 'collection-artwork-images',
}

您还可以配置艺术品缩略图的选项

COLLECTION_MODELS = {
    'artwork_thumbnail_options': {'size': (250, 250)},
}

Elastic Search集成

安装collection_models.search应用,并使用index_collection管理命令来填充搜索索引

$ ./manage.py index_collection

由以下组织支持