2017-10-05 19 views
0

私はDjangoで簡単なフォーラムを構築しています。トピックとサブトピックの2つのモデルがあります。認証されていないユーザーのアクセス権を制限する必要があるため、他のトピックやサブトピックにはすべてのユーザーがアクセスできるようにする必要があります。たとえば、トピックスポーツとサブトピックのサッカーとトピックの管理サブトピックHRがあります。最初のユーザーはすべてのユーザーからアクセス可能でなければなりませんが、2番目のユーザーは認証されたユーザーだけにアクセス可能である必要があります。どのように達成するのですか?あなたがオブジェクトレベルのアクセス許可を設定する必要があなたの要件ごとに認証されていないユーザーの特定のページへのアクセスを制限する

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

答えて

0

を利用することができます: は、ここに私の(すべてのトピックが記載されています)ダッシュボードとサブトピックの景色をしていますannoymousユーザーを経由して、そのビューにアクセスするために制限されます、そのビューに@login_requiredデコレータを使用し

@login_required 
def dashboard(request): 
    topics = Topic.objects.all() 
    return render(request, 'djangoforum/dashboard.html', {'topics': topics}) 

https://docs.djangoproject.com/en/1.11/topics/auth/default/#django.contrib.auth.decorators.login_required

+0

しかし、問題は、たとえば、サブトピックのFootballを使用したトピックSportsとサブトピックHRを使用したトピック管理です。最初のユーザーはすべてのユーザーからアクセス可能でなければなりませんが、2番目のユーザーは認証されたユーザーだけにアクセス可能である必要があります。 – AlexNikolaev94

関連する問題