gpt4 book ai didi

python - Django -- 允许用户只查看自己的页面

转载 作者:行者123 更新时间:2023-11-28 20:07:29 25 4
gpt4 key购买 nike

我认为我正在构建的 Django 应用程序的开发即将结束。此应用程序中的关键 View 是一个用户仪表板,用于显示某种指标。基本上我不希望用户能够看到其他用户的仪表板。现在我的观点是这样的:

@login_required
@permission_required('social_followup.add_list')
def user_dashboard(request, list_id):
try:
user_list = models.List.objects.get(pk=list_id)
except models.List.DoesNotExist:
raise Http404
return TemplateResponse(request, 'dashboard/view.html', {'user_list': user_list})

这个 View 的 url 是这样的:

url(r'u/dashboard/(?P<list_id>\d+)/$', views.user_dashboard, name='user_dashboard'),

现在,任何登录用户只需更改 URL 中的 list_id 即可访问不同的仪表板。我怎样才能让用户只能查看他们自己的 list_id 的仪表板,而无需从 URL 中删除 list_id 参数?我对 Django 的这一部分还很陌生,真的不知道该往哪个方向发展。

最佳答案

只需拉取 request.user 并确保此列表是他们的。

您还没有描述您的模型,但它应该是直截了当的。

也许您的 List 模型中存储了一个用户 ID?在这种情况下,

if not request.user == user_list.user:
response = http.HttpResponse()
response.status_code = 403
return response

关于python - Django -- 允许用户只查看自己的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16970176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com