使用 is_authenticated 与用户使用 OneToOneField 关系
Use is_authenticated using OneToOneField relation with User
我已经构建了一个模型,它与 Django 中的用户对象具有 OneToOne 关系,如下所示:
class Student(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
但在 HTML 文件中,过滤器 {% if user.student.is_authenticated %}
不起作用,但过滤器 {% if user.is_authenticated %}
起作用。我认为学生 class 继承了用户 class 的属性。
是否有其他可能从用户 class 创建自定义用户并可能使用 {% if user.student.is_authenticated %}
?我也想有可能使用例如 {% if user.teacher.is_authenticated %}
.
I thought that the Student class inherits the attributes from the User
class.
否,它不继承,这只是两个模型(表),其中一个表通过指定主键引用其他表。
因此您可以通过以下方式检查:
{% if <b>user.is_authenticated</b> %}
…
{% endif %}
或者如果您想知道 student
的用户是否经过身份验证,您可以使用:
{% if <b><i>mystudent</i>.user.is_authenticated</b> %}
…
{% endif %}
我已经构建了一个模型,它与 Django 中的用户对象具有 OneToOne 关系,如下所示:
class Student(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
但在 HTML 文件中,过滤器 {% if user.student.is_authenticated %}
不起作用,但过滤器 {% if user.is_authenticated %}
起作用。我认为学生 class 继承了用户 class 的属性。
是否有其他可能从用户 class 创建自定义用户并可能使用 {% if user.student.is_authenticated %}
?我也想有可能使用例如 {% if user.teacher.is_authenticated %}
.
I thought that the Student class inherits the attributes from the
User
class.
否,它不继承,这只是两个模型(表),其中一个表通过指定主键引用其他表。
因此您可以通过以下方式检查:
{% if <b>user.is_authenticated</b> %}
…
{% endif %}
或者如果您想知道 student
的用户是否经过身份验证,您可以使用:
{% if <b><i>mystudent</i>.user.is_authenticated</b> %}
…
{% endif %}