2013-10-16 5 views
-3

URL 차단은 내가 예를 들어 URL을 가지고있는 문제를 건너 왔어요장고 - 내가 장고에 노력하고 있어요

http://domain.com/trial/1/ 

이제 문제는 그 전 1에서 2로 URL을 변경하면 경우 인증 된 사용자가 아니라면 페이지가로드되어서는 안되며 오류 메시지가 표시되지만 대신 페이지가 표시됩니다. 인증되지 않은 사용자로부터 URL을 차단하려면 어떻게해야합니까?

해결책을 찾았지만 찾지 못했습니다.

감사

+1

일부 코드를 표시하십시오. [login_required] (https://docs.djangoproject.com/en/1.5/topics/auth/default/#the-login-required-decorator) 데코레이터가 필요합니다. – freakish

+0

매개 변수를 기반으로보기를 보호하려고합니까? 내 생각에 그것은 가능하지만 구현하기가 어렵습니다. 보호 된 데이터를 전용보기로 추출하여 [django docs] (https://docs.djangoproject.com/en/1.6/topics/auth/default/#limiting-access-to-logged)에 설명 된 재부팅 중 하나를 사용하여 보호합니다. -in-users) – J0HN

답변

0

장고 several built-in ways to limit access to views and model resources이 문제를 이해 바랍니다. 코드에서 알 수 있듯이 리소스별로 모델 리소스에 대한 액세스를 제한해야하는 것처럼 들립니다. 그 사용 사례를 가정

는 여기 접근 방식 :

# models.py 
class Trial(models.Model): 
    # whatever fields 
    login_required = models.BooleanField(default=False) 

# views.py 
def trial_detail(request, id): 
    trial = get_object_or_404(Trial, pk=id) 
    if trial.login_required and not request.user.is_authenticated(): 
     return HttpResponseRedirect(reverse('your-login-view')) 

    return render(request, 'your-template.html', {'trial': trial}) 

당신에게 인증을 필요로하는 일부 trial 모델을 가지고 할 수있는 유연성을 줄 것이고, 그렇지 않은 일부.

사용자 당 액세스를 잠글 필요가있는 경우 그룹, 맞춤 권한 등을 통해 액세스를 차단할 수 있습니다.

관련 문제