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

所以你希望这些都是只读的,对吗?