0

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

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

1 回答 1

1

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

于 2020-07-13T14:16:49.670 回答