Files
hossein-por-shop/backend/blog/admin.py
T
2026-05-03 18:41:51 +03:30

50 lines
1.7 KiB
Python

from django.contrib import admin
from .models import *
from import_export.admin import ImportExportModelAdmin
from unfold.contrib.import_export.forms import ExportForm, ImportForm, SelectableFieldsExportForm
from unfold.contrib.forms.widgets import ArrayWidget, WysiwygWidget
from django.contrib.postgres.fields import ArrayField
from utils.admin import ModelAdmin
from unfold.widgets import UnfoldAdminTextareaWidget
@admin.register(BlogModel)
class BlogModelAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
export_form_class = ExportForm
search_fields = ['title', 'content', 'summery', ]
list_filter = ['category', 'is_published', 'author']
compressed_fields = True
warn_unsaved_form = True
formfield_overrides = {
models.TextField: {
"widget": WysiwygWidget,
},
ArrayField: {
"widget": ArrayWidget,
}
}
def formfield_for_dbfield(self, db_field, request, **kwargs):
if db_field.name == "summery":
kwargs["widget"] = UnfoldAdminTextareaWidget()
return super().formfield_for_dbfield(db_field, request, **kwargs)
@admin.register(BlogCategoryModel)
class BlogCategoryAdmin(ModelAdmin):
def has_view_permission(self, request, obj=None):
return request.user.is_superuser
def has_add_permission(self, request, obj=None):
return request.user.is_superuser
def has_view_permission(self, request, obj=None):
return request.user.is_superuser
def has_change_permission(self, request, obj = ...):
return request.user.is_superuser
def has_delete_permission(self, request, obj = ...):
return request.user.is_superuser