Django 1.11 - 有没有办法合并从 models.Model 到 auth.models 的字段?
Django 1.11 - is there a way to combine fields from models.Model to auth.models?
我最终的目标是将 所有 用户(来自 auth.models)的列表与来自另一个模型(model.Model).这样做的最佳方法是什么?
我的代码:
survey/models/response.py
from django.contrib.auth.models import User
from django.db import models
class Response(models.Model):
created = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User, null=True, blank=True)
在 admin.py 中,我可以创建一个自定义用户 class,它列出所有注册用户的用户名,如下所示:
survey/admin.py
from django.contrib.auth.models import User
admin.site.unregister(User)
class UserAdmin(admin.ModelAdmin):
list_display = ('username',)
admin.site.register(User, UserAdmin)
本质上我想将 UserAdmin 扩展为 list_display = ('username', 'created') - 用户名 来自 auth.models 和 created 来自 models.Model.
目前,我可以在 admin.py 中创建一个 class,向我显示已提交 回复的所有用户的列表 。问题是,如果您有 200 个用户,从所有用户列表中查看谁没有 提交比只列出已提交响应的用户更有用。
您可以编写一个函数来获取相关数据,以便您在管理列表页面中显示。
在你的admin.py
from django.contrib.auth.models import User
admin.site.unregister(User)
class UserAdmin(admin.ModelAdmin):
list_display = ('username', 'latest_response')
def latest_response(self, obj):
return obj.response_set.latest('created') # Or any other logic you want to apply here to return a string or boolean that can be shown on the admin
admin.site.register(User, UserAdmin)
我最终的目标是将 所有 用户(来自 auth.models)的列表与来自另一个模型(model.Model).这样做的最佳方法是什么?
我的代码:
survey/models/response.py
from django.contrib.auth.models import User
from django.db import models
class Response(models.Model):
created = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User, null=True, blank=True)
在 admin.py 中,我可以创建一个自定义用户 class,它列出所有注册用户的用户名,如下所示:
survey/admin.py
from django.contrib.auth.models import User
admin.site.unregister(User)
class UserAdmin(admin.ModelAdmin):
list_display = ('username',)
admin.site.register(User, UserAdmin)
本质上我想将 UserAdmin 扩展为 list_display = ('username', 'created') - 用户名 来自 auth.models 和 created 来自 models.Model.
目前,我可以在 admin.py 中创建一个 class,向我显示已提交 回复的所有用户的列表 。问题是,如果您有 200 个用户,从所有用户列表中查看谁没有 提交比只列出已提交响应的用户更有用。
您可以编写一个函数来获取相关数据,以便您在管理列表页面中显示。
在你的admin.py
from django.contrib.auth.models import User
admin.site.unregister(User)
class UserAdmin(admin.ModelAdmin):
list_display = ('username', 'latest_response')
def latest_response(self, obj):
return obj.response_set.latest('created') # Or any other logic you want to apply here to return a string or boolean that can be shown on the admin
admin.site.register(User, UserAdmin)