gpt4 book ai didi

python - Django - POST 需要登录但 GET 不需要?

转载 作者:行者123 更新时间:2023-12-01 05:17:30 25 4
gpt4 key购买 nike

所以我正在尝试建立一个在项目上带有用户可编辑标签的网站。我希望用户只有在登录后才能编辑页面上的标签,但每个人都应该能够查看该页面。编辑是通过模型完成的。我无法在整个 View 上使用 login_required 装饰器,因为只有经过身份验证的用户才能完全看到该页面,这不是我想要的。编辑元素将是一个小的滑出加密狗,稍后将使用 AJAX 完成,有什么方法可以确保用户在单击编辑按钮时是否登录?我的页面 View 如下:

def show_gallery(request, gallery_id):
gallery = get_object_or_404(Gallery, id=gallery_id)
print gallery.name

if request.method == 'POST':
form = GalleryEditForm(request.POST, instance=gallery)

if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
print "invalid"
else:
form = GalleryEditForm(instance=gallery)

return render(request, "gallerypage.html", {
'gallery': gallery,
'tags': gallery.misc_tags.names(),
'form': form
})

谢谢。

最佳答案

您可以通过将字段设为只读,以这种方式在模板中使用用户的 is_authenticated 属性:

{% if user.is_authenticated %}
fields
{% else %}
read only value
{% endif %}

或者

替换 View 中的代码

if request.method == 'POST' and request.user.is_authenticated():

关于python - Django - POST 需要登录但 GET 不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22959334/

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