模型设计问题:运行时的自定义字段?

时间:2010-07-13 16:59:22

标签: django

我有一些关于Django的新手问题。

我想编写一个通用的票证管理系统,该站点的管理员应该能够向票证添加自定义字段。似乎数据库表是在初始化时生成的,因此我不清楚如何在运行时添加自定义字段。 一种方法是拥有一长串不同类型的字段,这些字段都可以为空,让管理员重命名/选择她需要的字段。有更好的设计吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

我目前负责维护类似的网站,其中列出了医疗状况的治疗,并且可以存在任意数量的“病例”,这些“病例”是用户发布的治疗/病症组合的经验。

我公司用来设置它的方法是让一个Entry对象类似于你描述的自定义字段,它有一个外键引用它所属的处理/条件。

然后,当我们想获得特定治疗/病症组合的所有条目时,我们只需做一个

Entry.objects.filter(condition=ID)

因此,在您的情况下,我建议使用Ticket模型和“Entry”样式模型,该模型包含对其所属票证的外键引用。

答案 1 :(得分:0)

我会做类似下面的代码。在属性模型中存储额外属性。将值存储在AttributeValue中。

class Ticket(models.Model):
    name = models.CharField(max_length=200)


class Attribute(models.Model):
    name = models.CharField(max_length=200)


class AttributeValues(models.Model):
    attribute = models.ForeignKey(Attribute)
    ticket = models.ForeignKey(Ticket)
    value = models.CharField(max_length=200)