我正在Django構建一個簡單的論壇,並且我有兩個模型 - 主題和副主題。我需要限制未經身份驗證的用戶訪問某些主題和子主題,以便他們無法訪問它們,而其他主題和子主題仍應可供所有用戶訪問 - 無論是已驗證用戶還是匿名用戶。例如,我有主題體育與副標題足球和主題管理與子標題HR。雖然第一個用戶應該可以訪問所有用戶,但第二個用戶只能訪問已認證的用戶。我如何實現這一目標? 這裏是我的儀表盤(其中所有的主題都列出)和副主題觀點:限制訪問非認證用戶的特定頁面
def dashboard(request):
topics = Topic.objects.all()
return render(request, 'djangoforum/dashboard.html', {'topics': topics})
def subtopic_view(request, slug):
current_user = request.user
form = ThreadForm(request.POST, request.FILES)
subtopic = get_object_or_404(SubTopic, slug=slug)
threads = Thread.objects.filter(subtopic=subtopic, ancestor_id=None).order_by('-created_date')
if request.method == 'POST':
if form.is_valid():
thread = form.save(commit=False)
thread.subtopic = subtopic
thread.save()
return redirect(request.path)
return render(request, 'djangoforum/subtopic.html', {
'current_user': current_user,
'form': form,
'subtopic': subtopic,
'threads': threads
})
但事情是,例如,我已經得到主題體育與副主題足球和主題管理與副主題人力資源。雖然第一個用戶應該可以訪問所有用戶,但第二個用戶只能訪問已認證的用戶。 – AlexNikolaev94