首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >配置文件显示所有用户django的用户对象

配置文件显示所有用户django的用户对象
EN

Stack Overflow用户
提问于 2014-08-21 06:25:01
回答 2查看 99关注 0票数 1

我的个人资料应用程序中有一个CustomUser和一个个人资料应用程序,我有以下几种型号:

代码语言:javascript
运行
复制
class Profile(models.Model):
    user = models.OneToOneField(MyUser,unique=True)
    name = models.CharField(_('Name'),max_length=100)
    work = models.CharField(_('Position'),max_length=200)
    company = models.CharField(_('Company'),max_length=200)
    gender = models.CharField(_('Gender'),max_length=10)
    photo = models.ImageField(_('Profile Pic'),upload_to='images/',blank=True)
    bio = models.TextField(_('Bio'),max_length=300) 
    def __str__(self):
            return self.name

我的主要问题是,当我在表单中包含用户字段时,它会显示一个下拉列表,其中列出了所有注册了该应用程序的用户。

我只想显示登录用户

EN

回答 2

Stack Overflow用户

发布于 2014-08-21 15:39:17

我认为这种方法更好,而且节省了时间:

代码语言:javascript
运行
复制
user = MyUser.objects.filter(username__icontains=request.user)
form.fields['user'].queryset = user
票数 1
EN

Stack Overflow用户

发布于 2014-08-21 07:08:12

这是一个特定于您使用的表单的问题,而不是模型。您想要做的是为字段user指定一个查询集。

您可以在实例化初始表单之后执行此操作。以下内容将显示在您的视图中,您可以在该视图中声明get请求的表单:

代码语言:javascript
运行
复制
# Obtain set of authenticated users (see [1] below)
authenticated_users = []
users = User.objects.all()

for user in users:
    if user.is_authenticated():
        authenticated_users.append(user)

# Instantiate form and update `user` queryset
form = SomeForm()
form.fields['user'].queryset = authenticated_users

1不幸的是,我不相信可以通过用户是否通过身份验证来过滤用户对象管理器,所以您必须遍历查询集并检查每个用户。如果有人知道这样一个问题,那么我很乐意改变我的答案。

这会将下拉列表限制为经过身份验证的用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25415455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档