1

我目前正在设计一个供研究人员进行审查的网络应用程序。在此应用程序中,有两组用户 - 参与者和管理员。

只有管​​理员可以开始审核,并且可以分配任何用户或管理员以管理员或筛选员的身份参与审核。每次审核的一般工作流程是:

  1. 搜索医学数据库并导入数以千计的参考文献。
  2. 根据标题筛选参考(审阅者/管理员的数量筛选可以是 1 个或多个)。每位审稿人都会筛选所有参考文献。将每个参考标记为包含或排除。
  3. 屏幕包括基于摘要的参考。同上适用。
  4. 以 PDF 格式获取全文并存储包含的参考文献。
  5. 屏幕包括基于全文的参考。同上适用。
  6. 创建自定义表单。
  7. 从包含的参考文献中提取数据。
  8. 导出数据

在整个审查过程中,将对所有参考资料进行机器学习。我们还将要求在整个审查过程中进行全面的记录。

我的问题是,我怎样才能最好地将这些部分分成 django 应用程序以及我应该如何构建所需的数据库。

暂时,我考虑过拥有这些数据库:

  • 用户。存储有关筛选器和审阅者的信息,以及哪些项目有一个tenner 和 admin。
  • 项目。存储每个项目的基本信息,包括数据提取表。与引用表的一对多关系。
  • 参考。存储有关每个引用的信息,包括包含状态和数据提取。

我不知道如何处理日志记录。我怎样才能做到这一点?

这是一个明智的拆分吗?如果是,我应该如何将这些步骤相应地拆分为应用程序。

4

1 回答 1

3

Django 最棒的地方apps在于您可以使用manage.py startapp <myapp>. 应用程序可以很好地控制代码的模块化。您在模块化代码方面走在了正确的轨道上。

从您的解释来看,关于您的表用户、项目和参考资料听起来很合理。

如果我是你,我会将应用程序构建成这样的东西。

apps/ 
    userprofile/ (users table )
    project/ (projects and references tables)
    activity/ (activity and notifications tables)

关于日志记录 每个活动,如用户编辑、项目编辑或删除都可以通过 post_ 或 pre_ 信号https://docs.djangoproject.com/en/1.10/topics/signals/捕获。使用它们创建一个活动,并基于该活动,您可以将单个活动作为通知发布给多个用户,即,单个活动将触发每个通知给作为该活动参与者的多个用户。

在每个应用程序中

我更喜欢在每个应用程序中使用以下结构:

userprofile/         
    __init__
    views.py
    tests.py
    signals.py # write the post_save pre_save post_delete pre_delete logics here
    managers.py  # take full leverage of managers, and custom querysets
    forms.py
    models.py
    urls.py
    admin.py
    tasks.py # for celery or tasks which will be used by queuing systems
    apps.py 

关于版本数据

从这里尝试适合您要求的一个 https://djangopackages.org/grids/g/model-audit/

于 2017-04-02T22:17:01.330 回答