首页 > 解决方案 > 如何在 django 的管理站点上显示列名?

问题描述

管理站点用户表 我正在 django 默认管理表上扩展我的管理表。添加列后,当我进入管理站点时,我只能在用户部分看到用户名列名称。但是当点击它时,它会显示列名并准备好放置一些字段。我想要的只是在访问用户表时显示所有列名。

我只是 Django 框架的新手,我阅读了一些文档和扩展管理表的方法。我想要的只是在现有的管理表上添加列名。

#models.py
from django.db import models
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    contact_number = models.CharField(max_length=250, blank=True)

#views.py

from django.shortcuts import render
from .models import User 
from django.urls import reverse_lazy
from django.views import generic
from .forms import NewUserCreationForm
from django.http import HttpResponseRedirect

class SignUp(generic.CreateView):
    form_class = NewUserCreationForm
    success_url = reverse_lazy('login')
    template_name = 'signup.html'

def userView(request):
    users = User.objects.all()
    return render(request,'registration/view_users.html', 
        {"all_users":users})


#admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
from .forms import NewUserCreationForm, NewUserChangeForm

class NewUserAdmin(UserAdmin):
    add_form = NewUserCreationForm
    form = NewUserChangeForm
    model = User
    list_display = 
    ['username']

admin.site.register(User,NewUserAdmin)

我想显示管理站点上的所有列。

标签: pythondjango

解决方案


list_display = ['username']只会显示用户名字段,因此您还需要添加contact_number字段,如下所示:

list_display = ['username', 'contact_number']

将所有列添加到要显示的 list_display 字段。

您也可以对所有字段尝试此操作:

list_display = [field.name for field in User._meta.get_fields()]

这将按排序顺序显示列表。


推荐阅读