对于即将开展的项目,我将拥有一个基本上将用户工作流程定义为3个步骤的站点。任务,检查,发布。该任务是普通用户所做的事情。管理员检查是某种质量保证,发布是后处理步骤。
一开始只会有一项任务,但是,将来我们希望有更多类型的任务,性质不同。
任务可能是解决数学问题列表并提交解决方案。另一个任务可能是,显示三张图片,用户必须告诉哪些图片包含相同的对象。任务是不同的,但将归结为一项需要检查的任务。
在检查中:应该有几种类型的检查。例如,对于数学,我们可以进行自动检查,比较以前设置的解决方案,而图片任务需要人工支持,以查看用户是否正确完成了任务。 您可以看到,某些任务带有某些检查。但是,对于图片任务,我们可以再次进行不同类型的检查。
我们可以进行全面检查,抽查或对多个执行相同任务的用户进行多数投票,或完全不同的事情。
Publishing将以多种方式发布已检查的任务:report,blogpost,写入数据库,生成有问题的任务列表。
任务不同但它们是任务。因此,我认为每个任务都有一个模块,但是,它们都是任务。因此,我想完成两件事:
同样适用于检查和发布
拥有这么多模块是否有意义?对我来说确实如此。我可能会将某个任务重用于另一个项目!
拥有单个模块执行各种任务是个坏主意。因此,扩展基础模块!可能吗? (我很肯定的是,bc python和django都很棒,但是一些指针会很棒)
我希望将所有任务模块放在同一个文件夹/命名空间中。我知道它可能对可重用性(选择单个任务)不利,但是对于其他开发人员来说,更容易看到他们的新任务的去向。是否可以在相同的文件夹和路径/任务中将submisule或相同类型的模块分组到该文件夹?
在任务之外检查模块。对于类似结构的任务,可以重复使用检查。因此,不同的任务可以应用相同的检查模块。检查与任务不同,所以我希望它是一个模块,然后将特定的检查模块分配给某个任务。
这是我的故事:)我希望我的想法有意义,django老手可以告诉我,如果我有意义,是否有可能根本不可能!
我用我的手机输入这个,因为我的时间不多了,没有人讨论这个问题。请加上我的帖子格式,直到我可以进入我的电脑!
答案 0 :(得分:1)
我会考虑这样的文件夹结构:
myproject
-> task
----> models
--------> __init__.py
--------> base.py
--------> math.py
--------> etc.
----> views
--------> __init__.py
--------> math.py
--------> etc.
----> urls
--------> __init__.py
--------> etc.
-> check
----> models
--------> __init__.py
--------> base.py
--------> etc.
-etc.- (you get the idea)
通过这种方式,您可以将您的Django项目划分为三个独立的应用程序,并且您将每个应用程序划分为'模型,视图,表格等分成不同的文件。
要导入特定的模型,视图,表单等,您只需:
from task.models.math import MathTask
from task.views.image import ImageView
etc.
这就是你如何制作抽象基础模型:
class BaseTask(models.Model):
# your fields goes here
class Meta:
abstract = True