我目前正在设计一个供研究人员用来进行评审的网络应用程序。在此应用程序中,有两组用户 - 参与者和管理员。
只有管理员才能开始审核,并且可以指定任何用户或管理员作为管理员或筛选者参与审核。每次审核的一般工作流程将是:
在整个评估过程中,将对所有参考文献进行学习。我们还需要在整个审核过程中进行全面的记录
我的问题是,我怎样才能最好地将这些部分拆分成django应用程序,以及如何构建所需的数据库。
暂时,我已经考虑过拥有这些数据库:
我不知道如何处理日志记录。我怎么能这样做?
这是一个合理的分裂,如果是这样,我应该如何将步骤分成应用程序。
答案 0 :(得分: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
关于版本数据
尝试满足您要求的那个