用户定义的字段模型在django中

时间:2016-10-16 16:48:11

标签: django

我想允许我的用户定义自定义属性。

他们正在管理公寓,因此每个客户都以不同的方式管理公寓。 我想让他们为他们的公寓定义一些自定义属性。

class Unit(CommonInfo):
    version = IntegerVersionField( )
    number = models.CharField(max_length=30,null=True, blank=True)
    max_occupants = models.PositiveSmallIntegerField()
    floor = models.PositiveSmallIntegerField()
    rooms = models.PositiveSmallIntegerField()
    is_disabled_access = models.BooleanField(default=False)
    balcony_quantity = models.PositiveSmallIntegerField()
    building = models.ForeignKey(Building)
    recomended_price = models.DecimalField(max_digits=7, decimal_places=2)

我希望他们能够为此模型添加其他字段。 例如 - is_breaker is_fuse Number_of

因为我无法预测他们需要什么数据。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

我会推荐以下解决方案:

1.创建“属性”模型:

class Property(models.Model):
    property = models.CharField(max_length=140)
    value = models.CharField(max_length=140)

    def __str__(self):
        return self.property

2.对于您的单元模型,添加具有属性模型的ManytoMany字段:

class Unit(models.Model):
    (...)
    properties = models.ManyToManyField(Property)

3.在管理员中添加内联以查看不同的属性:

class Unit(admin.ModelAdmin):
    fields = ('__all__')
    inlines = ('properties')