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()