如何让用户删除和编辑他们在Django中创建的对象?

时间:2015-11-28 13:40:12

标签: python django python-3.x web

现在我有一个名为lyric的模型。详情如下:

class Lyric(models.Model):
    title = models.CharField(max_length = 200)
    body = models.CharField(max_length = 12000)
    pub_date = models.DateTimeField('date published')
    user = models.OneToOneField(User)

我有一个用户可以创建歌词的表单。接下来我要启用用户可以编辑和删除歌词。现在我已经实现了编辑的形式和删除功能。但是我如何限制许可?提前谢谢!!!

1 个答案:

答案 0 :(得分:1)

这是一个快速提示。在您的观点中,请执行以下操作:

if request.user == lyric.user:
    lyric.delete() # or save edits
else:
    raise PermissionDenied # import it from django.core.exceptions

在模板中,您可以request.useruser访问登录用户:

{% if request.user == lyric.user %}
    <a href="/link/to/view/">Delete</a>
{% endif %}