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