如何使用一个模型的行在Django中创建表单,以在另一个模型上创建条目?

时间:2014-05-13 13:59:40

标签: python django forms

我是Django框架的新手。我为某种活动进度报告构建网站。

有一组预定义的活动,包含5个活动,但可以更改(添加/删除)。 所有部门都使用此套装。 每个部门将每月记录他们的进度报告,完成每项活动的工作数量。

模型是:

class Department(models.Model):
    dept_id = models.CharField(max_length=11, unique=True)
    dept_name = models.CharField(max_length=40)

# this one is extending the Django user model
class UserDept(models.Model):
    user = models.OneToOneField(User)
    user_dept = models.ForeignKey(Department)

class Month(models.Model):
    month_id = models.SmallIntegerField()
    month_name = models.CharField(max_length=9)

# defining the activities, is_active field to disable particular activities
class Activities(models.Model):
    actv_id = models.CharField(max_length=6, unique=True)
    actv_name = models.CharField(max_length=100)
    works_target = models.SmallIntegerField()
    year = models.SmallIntegerField()
    is_active = models.BooleanField(default=True)

# entries of work done for each activities of each month, by each department
class ProgressReport(models.Model):
    department = models.ForeignKey(Department)
    month = models.ForeignKey(Month)
    activities = models.ForeignKey(Activities)
    work_done = models.IntegerField()
    modifydate = models.DateTimeField(auto_now=True, auto_now_add=True)

我的问题是,我需要表单一次提交5个活动,只需点击一下提交按钮,就可以进入ProgressReport模型。

表单应该看起来像(基本上像Excel Sheet):

(活动从活动模型中动态获取)| (虚线是work_done条目的表单文本字段)

  1. activity1:....
  2. activity2:....
  3. activity3:....
  4. activity4:....
  5. activity5:....
  6. (提交按钮)

    如何使活动模型中的活动成为表单域,活动名称为标签,还将部门(已在一个会话变量中)和月份值写入数据库?

0 个答案:

没有答案