У меня есть некоторые функции, такие как:
has_delete_permission,
has_add_permission,
get_actions,
formfield_for_foreignkey
get_queryset
Etc - это встроенные функции ModelAdmin, которые я использую практически во всех ModelAdmin в моем проекте.
Как создать общий/многоразовый класс, который включает эти функции и повторное использование в других классах ModelAdmin?
Как передать ссылку класса или класса ModelAdmin на общий класс?
Какова должна быть структура файла, которая должна поддерживаться, если это нужно использовать для многих приложений в проекте.
Некоторое направление будет большой помощью.
Благодарю.
Я бы рекомендовал использовать множественное наследование класса Python для достижения этого. Это будет выглядеть примерно так:
from django.contrib import admin
from .models import Banana
class MyAdminMixin:
def has_delete_permission(self, obj):
# Your code goes here
def has_add_permission(self, obj):
# Your code goes here
class BananaModelAdmin(MyAdminMixin, admin.ModelAdmin):
# Now your admin has access to the methods in MyAdminMixin
model = Banana
Для получения дополнительной информации об использовании микшинов с представлениями на основе классов ознакомьтесь с документами Django по этому вопросу. Надеюсь это поможет!