Django - 查看其他用户个人资料

时间:2015-03-12 05:54:46

标签: django python-3.x django-models django-templates django-views

我正在使用Django 1.6创建一个Web应用程序..我有用户和用户配置文件,并设计了模板来显示用户的配置文件信息。

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实现此目的的最佳方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

Django对每个模型都有一个默认的permissions(更改,添加,删除)集。您可以在模板中使用它们来隐藏按钮或使用简单的检查,如果显示的用户也是查看页面的用户。

{% if perms.accounts.change_user %}
Edit
{% endif %}

{% if edit_user == user %}
Edit
{% endif %}

然后在你的POST请求视图中,你想要检查是否有人试图改变另一个用户并返回一个HttpResponseForbidden。

from django.http import HttpResponseForbidden

...

if not request.user == user:
    return HttpResponseForbidden()