如何在django的同一视图中将一个表单中的数据作为另一个表单的默认值?

时间:2017-10-09 10:15:26

标签: django django-forms

基本上,我是Django的新手。我正在尝试创建一个时间表网站,用户可以选择本周的任务,然后为该周的每一天添加他们工作的小时数。

但是,每天都要存储在单独的记录中。你将如何创建一个只需要输入一个任务的表单,然后循环创建5条记录,每天一个?

1 个答案:

答案 0 :(得分:0)

如果要创建绑定到表单的同一模型的多个实例,请使用内联表单集。但这些不是自动的,您必须在代码中定义它们。

使用动态添加/删除相关模型表单创建内联表单集的最简单方法是使用来自django-nested-admin软件包的NestedModelAdminNestedStackedInline

https://github.com/theatlantic/django-nested-admin

假设有Django Task模型和Django事件模型与Task模型有多对一的关系:

from django.contrib import admin
import nested_admin

from .models import Event, Task

class EventInline(nested_admin.NestedStackedInline):
    model = Event

class TaskAdmin(nested_admin.NestedModelAdmin):
    inlines = [EventInline]

admin.site.register(Task, TaskAdmin)

使用这么少的代码,您将在django admin中拥有强大的动态一对多模型编辑器。但在这种情况下,用户应该可以访问django admin。

否则,请自行定义表单集并自行管理其添加/删除。有许多教程/可插拔模块。