提问者:小点点

从模型django获取用户的用户名


我不确定是否有重复的问题,可能是,但我找不到

这里有这样的代码(models.py)

# Create your models here.
class UserProfileInfo(models.Model):
    # Create relationship (don't inherit from User!)
    user = models.OneToOneField(User, on_delete=models.CASCADE)

    # Add any additional attributes you want
    can_view_all = models.BooleanField(default=True)
    can_edit_all = models.BooleanField(default=False)

    can_add_admin = models.BooleanField(default=False)
    alias = models.CharField(default='none')

    @property
    def alias(self):
        return models.CharField(default=self.user.username)

    def __str__(self):
        # Built-in attribute of django.contrib.auth.models.User !
        return self.user.username

    @alias.setter
    def alias(self, value):
        self._alias = value

正如你所看到的,我试图用别名属性抓取用户名,但它不起作用,有人能帮我吗?基本上,我希望能够在稍后编辑布尔字段(我可以这样做),但我不知道我正在编辑哪个用户,如果有一种方法可以直接通过HTML注入获得用户名,那会更好,但我只需要一种方法来显示我正在编辑哪个用户

顺便说一下,它并不总是我登录的同一个用户,所以我不能只使用user

谢谢


共2个答案

匿名用户

在Django中,要引用外键对象中的字段,必须使用双下划线语法,例如-user__username

匿名用户

如果您使用的是默认django用户,只要self.user就可以在这里为您提供用户名。