Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 3, 2014 14:47:34

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод ошибки 404

Здравствуйте!

Вызываю ошибку 404

raise Http404(u'Пояснение ошибки.')

Подскажите как забрать “Пояснение ошибки” в шаблоне 404 ?

Нужно использовать messages или есть еще варианты, вообщем как делаете вы ?)



Отредактировано andreiru (Апрель 3, 2014 14:47:56)

Офлайн

#2 Апрель 3, 2014 15:05:01

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Вывод ошибки 404

Прочитал 3 раза, все равно ничего не понял. А что вы хотите/ что пытаетесь достичь, какую задачу решить?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Апрель 4, 2014 06:50:55

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Вывод ошибки 404

JOHN_16
А что вы хотите/ что пытаетесь достичь, какую задачу решить?
если я правильно понял.
он хочет зарейзить ошибку с сообщением, а сообщение передать в 404.html

:)

Офлайн

#4 Апрель 4, 2014 06:56:59

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод ошибки 404

ilnur прав, я хочу зарейзить ошибку с сообщением, а сообщение передать в 404.html



Офлайн

#5 Апрель 4, 2014 07:00:47

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод ошибки 404

Подскажите можно ли наследовать Mixin(ы) ?

Есть у меня LoginRequiredMixin:

class LoginRequiredMixin(object):
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_anonymous():
            messages.info(self.request, u'Чтобы получить доступ к запрашиваемой странице вам необходимо войти.')
            return HttpResponseRedirect(reverse('user_login'))
        return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)


Я хочу наследовать LoginRequiredMixin здесь:
class CheckHasCompanyMixin(LoginRequiredMixin, object):
    def dispatch(self, request, *args, **kwargs):
        if not request.user.has_company:
            messages.info(self.request, u'Вам необходимо создать компанию, чтобы получить доступ к запросам.')
            return HttpResponseRedirect(reverse('home'))
        return super(CheckHasCompanyMixin, self).dispatch(request, *args, **kwargs)

но LoginRequiredMixin не срабатывает, сразу работает CheckHasCompanyMixin !?



Отредактировано andreiru (Апрель 4, 2014 07:03:04)

Офлайн

#6 Апрель 4, 2014 12:34:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вывод ошибки 404

Проверь

class Mixin(object):
    def foo(self):
        print "Mixin"
class Foo(Mixin):
    def foo(self):
        print "Foo"
        super(Foo, self).foo()
f = Foo()
f.foo()

>>>но LoginRequiredMixin не срабатывает
Значит не срабатывает if not request.user.has_company:, там и ищи ошибку



Офлайн

#7 Апрель 4, 2014 12:53:10

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод ошибки 404

FishHook
Проверь

Выдает ошибку 'AnonymousUser' object has no attribute ‘has_company’

Добавил для проверки request.user.is_authenticated()

if request.user.is_authenticated() and not request.user.has_company:
    ...

и все заработало !

Спасибо за внимание !



Отредактировано andreiru (Апрель 4, 2014 12:54:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version