2 回答
TA贡献1841条经验 获得超3个赞
不要使用login_required装饰器,移除@login_required要公开访问的视图上方的行。
此login_required装饰器用于确保视图只能由经过身份验证的用户访问。
仅当您希望经过身份验证的用户使用该视图时才使用此选项。
您收到此错误,因为排队Topic.objects.filter(owner=request.user)的request.user是AnonymousUser。
如果仅在主题是公开的情况下才渲染,您可以检查它topic.public是否返回 true 或 false,代码可能类似于 -
def topic(request, topic_id):
"""주제 하나와 연결된 모든 항목을 표시한다."""
topic = get_object_or_404(Topic, id=topic_id)
# 주제가 현재 사용자의 것인지 확인한다.
if topic.public:
check_user = check_topic_owner(request, topic)
entries = topic.entry_set.order_by('-date_added')
context = {'topic': topic, 'entries': entries}
return render(request, 'learning_logs/topic.html', context)
else:
return HttpResponseRedirect(reverse('access_dennined'))
@login_required需要时使用。
添加回答
举报