【问题标题】:Grab username of User from model django从模型 django 中获取用户的用户名
【发布时间】:2020-11-02 18:11:59
【问题描述】:

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

我这里有这段代码 (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

如您所见,我正在尝试使用 alias 属性获取用户名,但它不起作用,有人可以帮助我吗,基本上,我希望以后能够编辑布尔字段(我可以这样做)但我不知道我正在编辑哪个用户,如果有办法通过 HTML 注入直接获取用户名会更好,但我只需要一种方法来显示我正在编辑哪个用户

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

谢谢

编辑: Views.py

@method_decorator(login_required, name='dispatch')
class UserUpdateView(UpdateView):
    context_object_name = 'userprofileinfo'
    fields = ('can_view_all', 'can_edit_all', 'can_add_admin')
    model = models.UserProfileInfo

【问题讨论】:

  • 在您使用 UserProfileInfo 的地方分享您的 views.py
  • 好了,谢谢你的时间伙伴

标签: python html django model html-injections


【解决方案1】:

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

【讨论】:

  • 嘿,谢谢你的回答,我想在我的 HTML 中做一个逻辑操作,上面写着 {% if user.can_edit%} 然后做一些事情,但是,这不起作用, ,即使是真的,我要如何获取这些信息?
猜你喜欢
  • 2013-09-17
  • 2014-07-26
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 2010-10-23
  • 2018-07-30
相关资源
最近更新 更多