我在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
答案 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