0

我正在尝试建立一个票务系统来涵盖多个部门的多种表格。每个工单表格都有标题、日期、描述的标准字段。根据表格所针对的部门,工单可能需要其他字段,即营销可能需要您从哪里听说我们的框,但帐户不需要。

所以我有一个将字段定义映射到表单的表,即 (1) - 你在哪里听到 TextArea ----> (45) 营销表单

我希望根据他们选择的表格,我可以显示与所选表格相关的附加字段。使用 ModelForm 时它不会自己生成这个,所以我想我必须自己做这个。

我的第一个想法是获取与特定表单相关的所有表单字段对象(filter(formid=marketing_form)),为它们创建字段,然后覆盖保存函数以在保存整个表单之前保存这些表单字段值。

我是 Django 新手,所以不确定是否有更好的方法?

#list of all possible fields for mapping  
class Field(models.Model):
    field_id = models.IntegerField(primary_key=True)
    field_cat = models.ManyToManyField(Category)
    field_label = models.CharField(max_length=50)
    field_type = models.IntegerField(choices=FIELD_TYPE_CHOICES)
    field_enabled = models.BooleanField(default=1)

    def __unicode__(self):
        return self.field_label

#list of all fields additional fields on a ticket 
class TicketField(models.Model):
    tf_id = models.IntegerField(primary_key=True)
    tf_ticket = models.ForeignKey(Ticket)
    tf_field = models.ForeignKey(Field)
    tf_0 = models.CharField(max_length=255, blank=True)
    tf_1 = models.TextField(blank=True)
    tf_2 = models.BooleanField(blank=True)
    tf_3 = models.ForeignKey(Employees, blank=True)
4

0 回答 0