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

yob*_*chi 1 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)
Run Code Online (Sandbox Code Playgroud)

我有一个用户可以创建歌词的表单。接下来我想让用户可以编辑和删除歌词。现在我已经实现了编辑的形式和删除的功能。但如何限制权限呢?先感谢您!!!

xyr*_*res 5

这是一个快速提示。在您看来,您可以这样做:

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

request.user在您的模板中,您可以通过以下方式访问登录用户user

{% if request.user == lyric.user %}
    <a href="/link/to/view/">Delete</a>
{% endif %}
Run Code Online (Sandbox Code Playgroud)