在Django admin页面中修改auth\u用户的queryset和自定义相关mod

2024-04-26 20:50:59 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有一个模型DailyTask,它有一个OneToOneField到auth_users模型, 这是DailyTask模型字段:

task_id

task_date

user ( OneToOneField )

现在每个user必须每天提交一个新的Task报告,已经有一个AdminModel分别向登录的非superuser显示所有提交的Tasks,这里是AdminModel

class DailyTaskAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super().get_queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(user=request.user)

我已经创建了一个proxy Model,所以我可以使用相同的模型创建和注册另一个AdminModel

class MyDailyTask(DailyTask):
    class Meta:
        proxy = True

然后是第二个模型:

class DailyPresenceAdmin(DailyTaskAdmin):
    def get_queryset(self, request):
        qs = super().get_queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter()

admin.site.register(MyDailyTask, DailyPresenceAdmin)

我唯一的问题是,在DailyPresenceAdminAdminModel中,要列出auth_users中尚未上载其Task of the day的所有users。你知道吗

所以会是这样的

if auth_users.user has no TaskID with the date equals to today's date in the DailyTask Model yet, then I want to take the user and list it in the DailyPresenceAdmin AdminModel.


Tags: the模型authgetdatereturnrequestusers