Django 隐藏“;加上“&引用;更改“&引用;删除“;djaongo管理中的操作
我有一套类似这样的代码:Django 隐藏“;加上“&引用;更改“&引用;删除“;djaongo管理中的操作,django,django-admin,Django,Django Admin,我有一套类似这样的代码: class PlatformEnvInLine(admin.TabularInline): model = PlatformEnv extra = 1 classes = ['collapse'] fields = ('environment',) class PlatformEnv(models.Model): id = models.AutoField(db_column='ID', primary_key=True)
class PlatformEnvInLine(admin.TabularInline):
model = PlatformEnv
extra = 1
classes = ['collapse']
fields = ('environment',)
class PlatformEnv(models.Model):
id = models.AutoField(db_column='ID', primary_key=True)
...
environment = models.ForeignKey(Environment, models.DO_NOTHING, db_column='Environment_ID', blank=True, null=True)
我的PlatformEnv模型如下所示:
class PlatformEnvInLine(admin.TabularInline):
model = PlatformEnv
extra = 1
classes = ['collapse']
fields = ('environment',)
class PlatformEnv(models.Model):
id = models.AutoField(db_column='ID', primary_key=True)
...
environment = models.ForeignKey(Environment, models.DO_NOTHING, db_column='Environment_ID', blank=True, null=True)
现在显示
PlatformEnvInLin
时,您可以通过下拉菜单选择环境。但在下拉列表旁边,会显示用于添加、更改或删除环境的按钮。如何隐藏这些按钮?您应该可以通过覆盖formfield\u for\u dbfield
方法来隐藏这些按钮
class PlatformEnvInLine(admin.TabularInline):
model = PlatformEnv
extra = 1
classes = ['collapse']
fields = ('environment',)
def formfield_for_dbfield(self, db_field, request, **kwargs):
formfield = super().formfield_for_dbfield(db_field, request, **kwargs)
if db_field.name == 'environment':
formfield.widget.can_add_related = False
formfield.widget.can_change_related = False
formfield.widget.can_delete_related = False
return formfield
所以你希望这些都是只读的,对吗?