Cés*_*pia 17 django django-forms
我正在尝试解决问题,但我不知道如何面对它.我需要一些帮助 :-)
我有这样的模型层次结构:
class Task(models.Model):
name = models.CharField(max_length=255)
number_of_steps = models.IntegerField()
class StepGroup(models.Model):
task = models.ForeignKey(Task)
init_date = models.DateField()
class Step(models.Model):
group = models.ForeignKey(StepGroup)
name = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
我必须编写一个对话框,在其中创建一些步骤组.InlineFormSet看起来可行,但由于嵌套有两个层次,我不知道如何做到这一点.
此外,我需要通常的表单形式:错误控制(form.name_of_field.errors),编辑任务时的自动填充等,所以使用javascript手动执行它,服务器端处理POST请求将太复杂和错误 - 易于.
这是我需要表单的方式(每个组中的步骤数由Task模型中的"number_of_steps"字段设置):
+-----------------------------------+
| STEP GROUP 1 |
| |
| Init date: _____________ |
| |
| Step 1: ________________ |
| Step 2: ________________ |
| Step 3: ________________ |
| |
+-----------------------------------+
| STEP GROUP 2 |
| |
| Init date: _____________ |
| |
| Step 1: ________________ |
| Step 2: ________________ |
| Step 3: ________________ |
| |
+-----------------------------------+
| |
| +-------------------+ |
| | Create step group | |
| +-------------------+ |
+-----------------------------------+
Run Code Online (Sandbox Code Playgroud)
请,任何形式的帮助,建议或链接将非常感谢.
小智 1
有可能的。我在 Pycon Ru 2021 上展示了它,并开始撰写有关它的文章:
https://dev.to/danilovmy/django-nested-inline-redering-4pfg
不久:
您可以创建表单集,一个字段就是这个表单集 - 它是其他表单集。这里有点难,如何为每个字段实现正确的 id。您还需要覆盖字段的“is_changed”。以及保存方法。
嵌套中最大的问题是多用户工作。如果一个用户更改了某些内容,那么现在就会更改其他用户 - 您可能会在数据库一致性中遇到复杂的错误
| 归档时间: |
|
| 查看次数: |
8724 次 |
| 最近记录: |