gpt4 book ai didi

python - 获取模板中所有自定义用户的列表(Django)

转载 作者:行者123 更新时间:2023-11-28 17:41:01 25 4
gpt4 key购买 nike

我已经定义了一个自定义用户模型,它运行良好等等。但是,在某个 View 中,我希望用户列出所有注册用户,但我似乎无法让它工作。我希望能够从用于呈现 View 的模板访问所有用户,但我不知道从哪里开始。

这是我到目前为止所得到的 - 在使用原始用户模型时有效,但不适用于我的自定义模型。

View .py

class UsersView(TemplateView):
template_name = 'customer/users/users.html'

用户.html

<h1>Users</h1>

<ul>
{% for user in object_list %}
<li class="user">{{ user }}</li>
{% endfor %}
</ul>

网址.py

url(r'^customer/users/', views.UsersView.as_view(), name='users'),

模型.py

class CustomUser(AbstractBaseUser):
"""
Abstraction of a user.

first_name - The first name of the user
last_name - The last name of the user
email - The email and username of the user
project - The project that the user is part of
is_active- Determines if the user is active, i.e. is the user "alive"
is_project_admin - Determines if the user has access to the project admin views
is_superuser - Determines if the user has full access to the entire database. Usually not.

This model is used to store information about users.
"""

first_name = models.CharField(max_length=200, blank=True, help_text="The first name of the user.")
last_name = models.CharField(max_length=200, blank=True, help_text="The last name of the user.")
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
help_text="The email and username of the user. Required."
)

project = models.ForeignKey(Project, null=True, blank=True, help_text="The project that this user is part of.", related_name='users')

is_active = models.BooleanField(
default=True,
help_text="Determines whether the user is active or not. ",
verbose_name="active"
)
is_project_admin = models.BooleanField(
default=False,
help_text="Determines if the user has admin access in a project.",
verbose_name="project admin"
)
is_superuser = models.BooleanField(
default=False,
help_text="CAUTION - enabling this gives the user full admin access and access to the entire database. Only for ArcCore admins.",
verbose_name="superuser"
)

objects = MyUserManager()

USERNAME_FIELD = 'email'

class Meta:
verbose_name = 'user'
verbose_name_plural = 'users'

def get_full_name(self):
#If the full name is not specified, return email
if self.first_name == "" and self.last_name == "":
return self.email
else:
return self.first_name + " " + self.last_name
get_full_name.short_description = 'Name'

def get_short_name(self):
return self.first_name

def __str__(self):
return self.email

def has_perm(self, perm, obj=None):
"Does the user have a specific permission?"
return True

def has_module_perms(self, app_label):
"Does the user have permissions to view the app `app_label`?"
return True

@property
def is_staff(self):
"Is the user a superuser?"
return self.is_superuser

请忽略 models.py 中的任何错误代码,因为我是 Python 和 Django 的新手,而且我还没有开始重构。

有谁知道如何在模板中列出我的所有用户?

提前致谢!

最佳答案

试试下面的 View 函数

class UsersView(TemplateView):
template_name = 'customer/users/users.html'

def get_context_data(self,**kwargs):
context = super(UsersView,self).get_context_data(**kwargs)
context['object_list'] = CustomUser.objects.all()
return context

关于python - 获取模板中所有自定义用户的列表(Django),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com