1

我目前正在设计一个Web应用程序供研究人员进行评论。在这个应用程序中有两组用户 - 参与者和管理员。构造Django应用程序

只有管理员可以开始审核,并可以指定任何用户或管理员以管理员或筛选者的身份参与审核。每个审查的一般工作流程将为:

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

纵观所有引用的审查机器学习的进度将完成。在整个评估过程中,我们还需要全面的日志记录

我的问题是,我怎样才能最好地将这些部分拆分为Django的应用程序,我应该如何构造所需的数据库。

暂定,我想过有两个数据库:

  • 用户。将信息存储在筛选器和审阅者以及哪个项目是Tenner和管理员。
  • 项目。存储每个项目的基本信息,包括数据提取表单。与参考表一对多关系。
  • 参考文献。存储有关每个参考的信息,包括包含状态和数据提取。

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

这是一个明智的分裂,如果是的话,我应该如何相应地将步骤分成应用程序。

+0

我不明白你的问题详细版本控制? Django自带默认日志记录https://docs.djangoproject.com/zh/1.10/topics/logging/。但是,关于版本控制的问题是什么? – rrmerugu

+0

@rrmerugu根据用户活动登录,即。更改设置,删除引用等。 – scutnex

+0

明白了。 @scutnex所以最新的版本控制问题 – rrmerugu

回答

3

关于Django的最好的事情是你用manage.py startapp <myapp>创建的apps。应用程序可以很好地控制模块化代码。您在模块化代码方面处于正确的轨道。

关于你的表格用户,项目和参考文献听起来很合理,从你的解释。

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

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/套件您的需要选择一个