2013-07-29 41 views
0

我需要根据用户的全名过滤用户(来自auth.user)。我知道我可以通过user.get_full_name()解决用户的全名,但可以通过此属性进行过滤吗?身份验证筛选器全名

我需要做类似user = User.objects.filter(...),但我需要为它提供一个属性。是否有一些属性可用于此?

回答

0

不作为财产,不幸的是。

在Django的用户模型可用性质

  • 用户名
  • 密码
  • 电子邮件
  • 名字
  • 姓氏

但不管怎么说做的过滤器会看起来像这样

User.object.filter(first_name="Jimminy", last_name="Cricket") 

你可以做的是创建一个自定义形式的配置文件。

class UserProfile(models.Model): 
    full_name = models.CharField() 
    user = models.ForeignKey(User) 

    def save(self, *args, **kwargs): 
     self.full_name = "Jimminy Cricket" #but not hardcoded ofc. 
     super(UserProfile, self).save(*args, **kwargs) 

,并在其上过滤器像这样

profile = UserProfile.objects.get(full_name="Jimminy Cricket") 
print profile.user 
+0

是。我想这是我能做的最好的。我将分割输入(来自用户):'name = name.split('')',然后'user = User.objects.filter(first_name = name [0],last_name = name [1])' –