Django - 查看其他用户资料
Django - View Other user profile
我正在使用 Django 1.6 创建一个网络应用程序。我有用户和用户配置文件,并设计了模板来显示用户的配置文件信息。
class UserProfile(models.Model):
class Meta:
app_label = 'xyz'
user = models.OneToOneField(User, related_name='user_profile')
description = models.CharField(max_length=200)
... other fields ...
我在模板上有各种编辑按钮,用户可以在其中查看其个人资料信息。此外,一个用户可以查看另一个用户的个人资料。在这种情况下,用户应该看不到编辑、删除或添加按钮。
是否有针对此的内置安全机制?使用 Django 1.6 实现此功能的最佳方法是什么?
提前致谢。
Django 对每个模型都有一组默认的 permissions(更改、添加、删除)。您可以在模板中使用它们来隐藏按钮,或者使用简单的检查显示的用户是否也是查看页面的用户。
{% if perms.accounts.change_user %}
Edit
{% endif %}
或
{% if edit_user == user %}
Edit
{% endif %}
然后在您看来 POST 请求您想要检查是否有人试图更改另一个用户和 return HttpResponseForbidden。
from django.http import HttpResponseForbidden
...
if not request.user == user:
return HttpResponseForbidden()
我正在使用 Django 1.6 创建一个网络应用程序。我有用户和用户配置文件,并设计了模板来显示用户的配置文件信息。
class UserProfile(models.Model):
class Meta:
app_label = 'xyz'
user = models.OneToOneField(User, related_name='user_profile')
description = models.CharField(max_length=200)
... other fields ...
我在模板上有各种编辑按钮,用户可以在其中查看其个人资料信息。此外,一个用户可以查看另一个用户的个人资料。在这种情况下,用户应该看不到编辑、删除或添加按钮。
是否有针对此的内置安全机制?使用 Django 1.6 实现此功能的最佳方法是什么?
提前致谢。
Django 对每个模型都有一组默认的 permissions(更改、添加、删除)。您可以在模板中使用它们来隐藏按钮,或者使用简单的检查显示的用户是否也是查看页面的用户。
{% if perms.accounts.change_user %}
Edit
{% endif %}
或
{% if edit_user == user %}
Edit
{% endif %}
然后在您看来 POST 请求您想要检查是否有人试图更改另一个用户和 return HttpResponseForbidden。
from django.http import HttpResponseForbidden
...
if not request.user == user:
return HttpResponseForbidden()