Начиная с версии Django 3.* доступен метод get_inlines.
Допустим мы хотим показать Inline форму если пользователь находится в определенной группе.
admin.py
class YourInline(admin.TabularInline):
model = YourAnotherModel
extra = 0
@admin.register(YourModel)
class YourModelAdmin(admin.ModelAdmin):
inlines = []
...
def get_inlines(self, request, obj):
if obj is not None:
# if user in Врач group, display inline form
if obj.groups.filter(name='Название группы'').exists():
return [YourInline]
return []
Другие публикации из блога
Как понять цифры в ошибке 22:7 или 00:00
Предположим, вы получили ошибку вида: 22:7 или 11:17 и т.п. Как понять что означают эти числа?
1-е число – это…
Подробнее
Django template индексы в цикле
Для вывода индексов объектов в цикле шаблона Django используется следующий синтаксис:
{% for object in objects_lis…
Подробнее
Что означает managed=False в models.py Django?
Предположим что вы используете несколько баз данных в вашем проекте, одна из них основная, другая уже содержит какие-то…
Подробнее
JavaScript fetch с простой HTTP аутентификацией
Самый простой способ протестировать ваш API с базовой аутентификацией (логин, пароль).
Аналогичным образом работ…
Подробнее
Как очистить Recent actions в админке Django
from django.contrib.admin.models import LogEntry
LogEntry.objects.all().delete()
Подробнее
Django\Nginx 403 Forbidden Error при доступе к media
Скорее всего ошибка возникает из-за неверных прав доступа к папке media и её поддиректориям. Исправляется командой:
…
Подробнее