我想允许我的用户定义自定义属性。
他们正在管理公寓,因此每个客户都以不同的方式管理公寓。 我想让他们为他们的公寓定义一些自定义属性。
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
因为我无法预测他们需要什么数据。
我该怎么办?
答案 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')