我有一些功能,如:
has_delete_permission,
has_add_permission,
get_actions,
formfield_for_foreignkey
get_queryset
Etc是我在项目中几乎所有ModelsAdmin中使用的内置ModelAdmin函数。
如何创建包含这些函数的公共/可重用类,并在其他ModelAdmin类中重用?
如何将Model或ModelAdmin类的引用传递给公共类?
如果必须将这个文件结构用于项目中的许多应用程序,那么应该保留哪些文件结构。
某些方向会有很大的帮助。
感谢。
答案 0 :(得分:1)
我建议使用Python的类multiple inheritance来实现这一目标。它看起来像这样:
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
有关将mixins与基于类的视图一起使用的更多信息,请查看Django docs on the subject。希望这有帮助!