Django - 在TabularInline

时间:2016-05-04 12:33:04

标签: python django django-modeladmin modeladmin

我在Django中有一些模型:

class Object(models.Model):
    ...

class ObjectFeatures(models.Model):
    class Meta:
        unique_together = (('object', 'feature'),)
    count = models.PositiveSmallIntegerField()
    object = models.ForeignKey(...)
    feature = models.ForeignKey(...)

class Feature(models.Model):
    is_number = models.BooleanField()
    ...

我有一个对象,在此对象中是带有ObjectFeature的管理面板中的内联表单。在那里,您可以选择要从功能添加的功能,以及可用功能的数量。

is_number定义功能是否需要数字,如果为false,则定义布尔值(计数为0或1)。

无论如何在TabularInline中显示一个复选框,当它需要布尔值而不是整数时,虽然它是IntegerField

另一种可能性是在object_features中定义布尔和整数字段。根据{{​​1}}中的值

,我是否有可能只显示其中一个?

在admin.py中:

is_number

1 个答案:

答案 0 :(得分:0)

在你的内联

    def new_field(self, obj):
        if type(obj.is_number) is bool:
            do stuff - as bool
        else:
            do other stuff , maybe check if int and so on...
    new_field.allow_tags = True
    new_field.short_description = 'is_number verbose'

将new_field添加到内联的readonly_fields