发布需要Django登录,但不需要GET?

2024-09-30 10:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着用用户可编辑的标签做一个网站。我希望用户能够编辑页面上的标签,只有当他们登录,但每个人都应该能够查看页面。编辑是通过一个模型表单完成的。我不能在整个视图中使用login-required decorator,因为只有经过身份验证的用户才能看到页面,这不是我想要的。编辑元素将是一个小的滑出加密狗,稍后将使用AJAX完成,有没有任何方法可以确保用户在单击编辑按钮时是否登录? 页面的视图:

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
        })

谢谢。在


Tags: instance用户form视图id编辑returnif
2条回答

我相信this可以帮助解决这个问题。还要检查django.sessions文档。在

if request.user.is_authenticated(): ...

必需的设置.py公司名称:

^{pr2}$

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

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

或者

替换视图中的代码

^{pr2}$

相关问题 更多 >

    热门问题