社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

需要在django管理界面上显示用户计数其他数据计数

Kashyap • 5 年前 • 1556 次点击  

我已经为django admin创建了自定义index.html。这是尖叫声 enter image description here

这里用户或模型1的计数是静态的。我想从数据库更新。有没有办法将变量从admin.py传递到主管理界面?

有没有什么方法可以改变指数,就像我们可以做一些模型:

class UserAdmin(DjangoUserAdmin):
"""Define admin model for custom User model with no email field."""

fieldsets = (
    (None, {'fields': ('email', 'password')}),
    (_('Personal info'), {'fields': ('first_name', 'last_name','Mobile_number','Address','avatar','AI','U_ID')}),
    (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
                                   'groups', 'user_permissions')}),
    (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
)
add_fieldsets = (
    (None, {
        'classes': ('wide',),
        'fields': ('email', 'password1', 'password2'),
    }),
)
list_display = ('email', 'first_name', 'last_name', 'is_staff','Mobile_number','Address','avatar','AI','U_ID')
search_fields = ('email', 'first_name', 'last_name','Mobile_number','Address','avatar','AI','U_ID')
ordering = ('email',)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43333
 
1556 次点击  
文章 [ 1 ]  |  最新文章 5 年前
ruddra
Reply   •   1 楼
ruddra    6 年前

一个想法是 习俗 context-processor . 可以添加新的上下文处理器,如下所示:

# in context_processor.py

def user_count(request):
   return { 'total_user' : User.objects.all().count() }

在中注册 settings.py 里面 TEMPLATE 配置:

   'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
            'your_app.context_processor.user_count'
        ],
    },

在模板内使用:

<div>
    {{ user_count }}
</div>

供参考

上下文处理器 当您希望在每个模板中显示相同的数据时非常有用。但是如果这些数据只用于一个页面,并且可能需要通过modeladmin发送额外的上下文数据,那么 change_view 更适合这个。例如(从文档粘贴的副本):

class MyModelAdmin(admin.ModelAdmin):
    change_form_template = 'admin/myapp/extras/openstreetmap_change_form.html'

    def get_osm_info(self):
        pass

    def change_view(self, request, object_id, form_url='', extra_context=None):
        extra_context = extra_context or {}
        extra_context['osm_data'] = self.get_osm_info()
        return super().change_view(
            request, object_id, form_url, extra_context=extra_context,
        )