django admin 中对象的存档部分

Archive section for objects in django admin

我想自定义 Django Admin 为我的 objects 个模型(例如 PostProduct 模型)设置特定部分作为存档部分。

现在我需要在我的模型中显示对象状态的一个字段(例如 is_archive 字段),但是 我不知道如何显示它们在 Django Admin.

有没有人对此有意见?

  1. 为您需要的模型创建 Proxy model
  2. 在您的管理面板中为此代理模型创建单独的部分
  3. 为它覆盖 get_queryset()
models.py
from django.db import models

class Post(models.Model):
    ...
    is_archive = models.BooleanField(default = False)
    ...

class PostProxy(Post):
    class Meta:
        proxy = True
admin.py
from django.contrib import admin
from .models import *

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    ...

@admin.register(PostProxy)
class PostProxyAdmin(admin.ModelAdmin):
    ...

    def get_queryset(self, request):
        return super().get_queryset(request).filter(is_archive=True)