【发布时间】:2015-06-07 19:55:13
【问题描述】:
我正在尝试构建一个可以提供报告跟踪的表单。报告本身是ProjectReport 类,它链接所有可用ReportAtoms 的实例。每个ReportAtom 都是RAGItem(如“进度”、“风险”、“资源”)和RAGMarker(“绿色”、“红色”)的组合:
class ProjectStatus(CoreBase):
report_project = models.ForeignKey('Project')
report_items = models.ManyToManyField('RAGReportAtom')
report_date = models.DateTimeField(default=datetime.now())
class RAGReportAtom(CoreBase):
item = models.ForeignKey(DicRAGItem)
marker = models.ForeignKey(DicRAGMarker)
comments = models.TextField(null=True, blank=True)
class DicRAGItem(DicCoreBase):
name = models.CharField(max_length=64, unique=True)
description = models.TextField(null=True, blank=True)
is_used_for_portfolio = models.BooleanField(default=False)
is_used_for_project = models.BooleanField(default=True)
is_used_for_milestone = models.BooleanField(default=True
class DicRAGMarker(DicCoreBase):
name = models.CharField(max_length=16, unique=True)
color_code = models.CharField(max_length=7, unique=True)
icon = models.FileField(upload_to='RAG_SIMPLE_ICONS', null=True, blank=True)
这是可以用图形表示的方式:
所以我在这里要做的基本上是这样的:
- 获取所有可用报告项目的列表(报告的内容)
- 构建一个显示所有报告项目的表单,并让用户为每个项目选择一个标记
- 用户可以离开 cmets
- 提交表单后,我创建了与最终拥有的报告原子一样多的报告原子(项目和标记的组合)和一个链接所有它们的 ProjectReport 实例。
类似的东西:
这是否可以用 Django.forms 和crispy 生成这个表单?我正在为大多数表单使用 django rest 框架 - 也许我也可以使用它?
【问题讨论】:
标签: django forms django-forms django-rest-framework django-crispy-forms