基本上,我是Django的新手。我正在尝试创建一个时间表网站,用户可以选择本周的任务,然后为该周的每一天添加他们工作的小时数。
但是,每天都要存储在单独的记录中。你将如何创建一个只需要输入一个任务的表单,然后循环创建5条记录,每天一个?
答案 0 :(得分:0)
如果要创建绑定到表单的同一模型的多个实例,请使用内联表单集。但这些不是自动的,您必须在代码中定义它们。
使用动态添加/删除相关模型表单创建内联表单集的最简单方法是使用来自django-nested-admin软件包的NestedModelAdmin
和NestedStackedInline
:
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。
否则,请自行定义表单集并自行管理其添加/删除。有许多教程/可插拔模块。