Django Admin TabularInline: Как скрыть имя объекта в модели M2M?
Как скрыть Unit_attribute object (3)
с экрана администратора?
admin.py:
from django.contrib import admin
from core.models import Attribute, Unit
class UnitAttributeInline(admin.TabularInline):
model = Unit.attributes.through
@admin.register(Unit)
class UnitAdmin(admin.ModelAdmin):
inlines = [UnitAttributeInline]
models.py:
class Attribute(models.Model):
name = models.CharField(max_length=45)
class Unit(models.Model):
attributes = models.ManyToManyField(Attribute)
Вы можете легко изменить что-то подобное с помощью css. Строчная запись:
class UnitAttributeInline(admin.TabularInline):
class Media:
css = {
"all": ["my_styles.css"],
}
и в my_styles.css:
fieldset .inline_label{
display: none;
}
Скрытие чего-либо в Admin css - самый быстрый и безболезненный способ. Потому что для этого не нужно писать тесты :)
p.s. Пожалуйста, проверьте свой собственный css_class, потому что в разных версиях django он может немного меняться в шаблонах админки. Например, он может быть таким:
fieldset .origin { } # new versions of django
fieldset .original { } # very old versions of django