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)
내가 사용하는 것입니다 : 대신
보기 코드 또는 'DetailView'사용 방법을 게시하십시오. –