标签 dmin 下的文章

models.py

from django.db import models

class Image(models.Model):
    title = models.CharField(max_length =200, verbose_name="标题")
    created_at = models.DateTimeField(auto_now_add=True,editable=False, verbose_name='创建时间')
    updated_at = models.DateTimeField(auto_now_add=True,editable=False, verbose_name='更新时间')

admin.py

from django.contrib.admin import AdminSite
from django.utils.translation import gettext_lazy as _
from django.contrib import admin

class MyAdminSite(AdminSite):
    login_template = None  # 移除登录模板,允许匿名访问

    def has_permission(self, request):
        """
        允许所有人访问,不需要登录。
        注意:这将使管理面板对所有人开放,包括匿名用户。
        """
        return True

# 实例化自定义的 AdminSite
my_admin_site = MyAdminSite()

# 注册你的模型
from .models import Image

class ImageAdmin(admin.ModelAdmin):
    list_display = ('id',)  # 显示 title 和 uploaded_at 字段
    search_fields = ('title',)  # 允许通过 title 字段搜索
    list_filter = ('status', 'updated_at',)  # 增加按上传日期过滤的功能

    def has_module_permission(self, request):
        """ 允许匿名用户访问此模块 """
        return True

    def has_view_permission(self, request, obj=None):
        """ 允许匿名用户查看对象 """
        return True

    def has_add_permission(self, request):
        """ 允许匿名用户添加对象 """
        return True

    def has_change_permission(self, request, obj=None):
        """ 允许匿名用户修改对象 """
        return True

    def has_delete_permission(self, request, obj=None):
        """ 允许匿名用户删除对象 """
        return True
my_admin_site.register(Image, ImageAdmin)

urls

from django.urls import path
from app.admin import *
urlpatterns = [
    path('', my_admin_site.urls),
    # path('admin/', admin.site.urls),
]