在Django中,我希望能够在管理表单中批量创建带有外键的项目。我该怎么做呢?

时间:2012-07-19 07:06:53

标签: django templates admin

所以我正在开设课程教学大纲。每个教学大纲都有一个或多个课堂会议时间,开课日期,结束日期。我希望能够根据管理表单中的这些信息自动为每个教学大纲生成一组课堂会议。想法只是用户应该能够输入会议时间,开始日期和结束日期,点击按钮,并让django创建用户可以编辑的内联类会话对象。所以,举例来说,如果我的课程在5月1日到9月1日期间从1到3每周二开会,我应该能够按一下按钮,并获得课堂课程 - 或者至少是课堂课程表格,没有理由将它们保存在数据库中,直到它们被填写为 - 在这些日期之间的每个星期二。

相关型号代码如下:

class Syllabus (models.Model):
    name = models.CharField(max_length=120)
    number = models.CharField(max_length=32, blank = True)  
    start_date = models.DateField()
    end_date = models.DateField()

class DaysTime(models.Model):
    days = MultiSelectField(max_length=15, choices=WEEKDAYS)
    startTime = models.TimeField()
    endTime = models.TimeField()

    class Meta:
        abstract = True

class ClassTime(DaysTime):
    key = models.ForeignKey('Syllabus')

class EventAbstract (models.Model):
    name = models.CharField(max_length=120)
    description = models.TextField(blank = True)
    startDateTime = models.DateTimeField()
    endDateTime = models.DateTimeField(blank = True)

    class Meta:
        abstract=True

class ClassSession(EventAbstract):
    cancelled = models.BooleanField(default = False)
    syllabus = models.ForeignKey('Syllabus')
    date = models.DateField()

生成日期的日期和ClassSessions不是问题。在自定义管理模板上添加按钮以扩展change_form也不是问题。因为change_form非常通用,并且对它所呈现的模型一无所知,所以我无法看到按钮与该函数对话。

所以我认为这个问题有三个方面:

  1. 如何为生成新ClassSessionInlines的函数提供定期课时?
  2. 如何在管理页面上创建它们?
  3. 如何填充他们的字段?

0 个答案:

没有答案