我的个人资料应用程序中有一个CustomUser和一个个人资料应用程序,我有以下几种型号:
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我的主要问题是,当我在表单中包含用户字段时,它会显示一个下拉列表,其中列出了所有注册了该应用程序的用户。
我只想显示登录用户
发布于 2014-08-21 15:39:17
我认为这种方法更好,而且节省了时间:
user = MyUser.objects.filter(username__icontains=request.user)
form.fields['user'].queryset = user发布于 2014-08-21 07:08:12
这是一个特定于您使用的表单的问题,而不是模型。您想要做的是为字段user指定一个查询集。
您可以在实例化初始表单之后执行此操作。以下内容将显示在您的视图中,您可以在该视图中声明get请求的表单:
# 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_users1不幸的是,我不相信可以通过用户是否通过身份验证来过滤用户对象管理器,所以您必须遍历查询集并检查每个用户。如果有人知道这样一个问题,那么我很乐意改变我的答案。
这会将下拉列表限制为经过身份验证的用户。
https://stackoverflow.com/questions/25415455
复制相似问题