django
  • django-templates
  • django-users
  • detailview
  • 2014-04-11 8 views 1 likes 
    1

    syncdb를 사용하여 수퍼 유저를 생성했지만 세부보기에서 {{ object.email }}을 사용하면 전자 메일 값 대신 "True"를 얻습니다.django DetailView가 사용자에게 잘못된 정보를 표시합니다.

    그러나 쉘을 사용할 때 올바른 값이 표시됩니다. 내보기에서

    :

    class UserDetail(DetailView): 
        model = User 
        template_name = 'myapp/user/detail.html' 
    
        @method_decorator(login_required) 
        def dispatch(self, *args, **kwargs): 
         return super(UserDetail, self).dispatch(*args, **kwargs) 
    
        def get(self, request, *args, **kwargs): 
         self.object = self.get_object() 
    
         if request.user.is_superuser or request.user.pk == self.object.pk: 
          return super(UserDetail, self).get(request, *args, **kwargs) 
         else: 
          raise PermissionDenied 
    
        def get_success_url(self): 
         return reverse('cleb:user-detail', kwargs={'pk': self.object.id}) 
    

    내 템플릿에서 : 어떤 도움을 주시면 감사하겠습니다

    <dl class="dl-horizontal"> 
        <dt>{% trans 'Username' %}</dt><dd>{{ object.username }}</dd> 
        <dt>{% trans 'First name' %}</dt><dd>{{ object.first_name }}</dd> 
        <dt>{% trans 'Last name' %}</dt><dd>{{ object.last_name }}</dd> 
        <dt>{% trans 'Email address' %}</dt><dd>{{ object.email }}</dd> 
        {% if user.is_superuser %} 
        <dt>{% trans 'Is Superuser' %}</dt><dd>{{ object.is_superuser }}</dd> 
        <dt>{% trans 'Is Active' %}</dt><dd>{{ object.is_active }}</dd> 
        {% endif %} 
    </dl> 
    

    .

    감사합니다.

    return super(UserDetail, self).get(request, *args, **kwargs) 
    

    내가 사용하는 것입니다 : 대신

    +1

    보기 코드 또는 'DetailView'사용 방법을 게시하십시오. –

    답변

    0

    return render(request, self.template_name, { 
         'object': self.object, 
    }) 
    

    내가 슈퍼를 호출 할 필요를 참조하지 개체가이 손실 될 수 있습니다. {{object.username}}을 (를) 보여주는 것은 무엇입니까?

     관련 문제

    • 관련 문제 없음^_^