Wylogowanie Django nie działa

Wydaje mi się, że mam ten sam problem, co w tym pytaniu:Problem wylogowania z Django

Mój jest nieco dziwniejszy, działa w Google Chrome .... ale nie w Firefoxie ...

to jest moja funkcja wylogowania: (w views.py)

def my_logout(request):
    logger.debug("Logout called by user")
    try:
        # Here I do some custom stuff, like logging this action in a database and so on
        # For this question it shouldn't matter... because in a try catch
        # so whatever goes wrong here, logging out should work anyway
    except Exception, e:
        logger.info("Logging logout action error: %s" % e)
    logout(request)
    return HttpResponseRedirect("/")

w settings.py mam:

LOGIN_URL = '/desktop/login/'
LOGOUT_URL = '/desktop/logout/'
LOGIN_REDIRECT_URL = '/'

W urls.py aplikacji iamapps (dołącz do adresów projektu jako / desktop /):

url(r'^login/

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'iamapps.views.my_login', name='iamapps.login'), url(r'^logout/

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/$', 'django.contrib.auth.views.logout',  {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'),
#url(r'^logout/$', 'django.contrib.auth.views.logout_then_login',  name='iamapps.logout'),
url(r'^loggedout/$', LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'iamapps.views.my_logout', name='iamapps.logout'),

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/$', 'django.contrib.auth.views.logout',  {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'),
#url(r'^logout/$', 'django.contrib.auth.views.logout_then_login',  name='iamapps.logout'),
url(r'^loggedout/$', LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'django.contrib.auth.views.logout', {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'), #url(r'^logout/

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'iamapps.views.my_login', name='iamapps.login'), url(r'^logout/

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/$', 'django.contrib.auth.views.logout',  {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'),
#url(r'^logout/$', 'django.contrib.auth.views.logout_then_login',  name='iamapps.logout'),
url(r'^loggedout/$', LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'iamapps.views.my_logout', name='iamapps.logout'),

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/$', 'django.contrib.auth.views.logout',  {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'),
#url(r'^logout/$', 'django.contrib.auth.views.logout_then_login',  name='iamapps.logout'),
url(r'^loggedout/$', LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'django.contrib.auth.views.logout_then_login', name='iamapps.logout'), url(r'^loggedout/

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'iamapps.views.my_login', name='iamapps.login'), url(r'^logout/

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/$', 'django.contrib.auth.views.logout',  {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'),
#url(r'^logout/$', 'django.contrib.auth.views.logout_then_login',  name='iamapps.logout'),
url(r'^loggedout/$', LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'iamapps.views.my_logout', name='iamapps.logout'),

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/$', 'django.contrib.auth.views.logout',  {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'),
#url(r'^logout/$', 'django.contrib.auth.views.logout_then_login',  name='iamapps.logout'),
url(r'^loggedout/$', LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'iamapps.views.my_login', name='iamapps.login'), url(r'^logout/

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/$', 'django.contrib.auth.views.logout',  {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'),
#url(r'^logout/$', 'django.contrib.auth.views.logout_then_login',  name='iamapps.logout'),
url(r'^loggedout/$', LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

, 'iamapps.views.my_logout', name='iamapps.logout'),

dalsze informacje:

django 1.4.3 (właśnie zaktualizowany z 1.3 do 1.4 ....)python 2.7działa w Chrome, ale nie w Firefoksie 17.0.1, Linux

Fakt, że działa w Google Chrome, ale nie działa w Firefoksie, najbardziej mnie intryguje. Wydaje się, że ma coś wspólnego z firefoxem, który pamięta użytkownika jako zalogowanego ...

EDYTOWAĆ: Dostaję zepsutą rurę ... ale wydaje mi się, że nie wylogowuję się ... ale przechodzę do widoku głównego po wylogowaniu ....

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run
    self.finish_response()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
    self.write(data)
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write
    self.send_headers()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble
    'Date: %s\r\n' % format_date_time(time.time())
  File "/usr/lib/python2.7/socket.py", line 324, in write
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58684)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/media/storage/django/sites/iamfloraservice/parts/django/django/core/servers/basehttp.py", line 139, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
[24/Dec/2012 14:33:25] "GET / HTTP/1.1" 200 48247

Edytuj 2 przechodzi do tego widoku po wylogowaniu i przekierowaniu:

def home(request, template='iamfloraservice/home.html'):

    logger.debug("Home view called by user %s" % request.user)
    return render_to_response(template,{},context_instance=RequestContext(request))

Myślę, że przekierowanie z żądaniem do tego widoku powoduje problem .... W dzienniku jest to nadal użytkownik 'michel' (ponieważ widok używa żądania z przekierowania, a to miało użytkownika michel) ... jednak .. . Użytkownik michel jest wylogowywany w międzyczasie ....

EDYCJA 3

z powodu sugestii wynikającej z rejestratora. niezauważenie rejestrowania nie pomaga I to jest domyślny rejestrator:

import logging
logger = logging.getLogger(__name__)

EDYCJA 4 (30-12-2012)

Moje wylogowanie jest z głównego okna, w którym pokazuję link wylogowania, gdy użytkownik jest zalogowany i link do logowania, jeśli użytkownik jest wylogowany. Zawiera również pasek narzędzi, które są wypełniane w zależności od użytkownika i przynależności do grup.

Myślę, że problem polega na tym, że przeładowuje to główne okno, podczas gdy pamięć podręczna i użytkownik w jego żądaniu nie są jeszcze wyczyszczone. W jakiś sposób Chrome wie, jak sobie z tym poradzić, a firefox powoduje błąd w potoku. Ręczne wyczyszczenie pamięci podręcznej w przeglądarce powoduje poprawny widok po ponownym załadowaniu ....

rozwiązaniem może być przekierowanie na stronę bez niczego, co zawiera użytkowników ... lub dowiedzieć się, aby wyczyścić pamięć podręczną we właściwym momencie.

ten problem może być taki sam ... ale nie mogę oczekiwać, że użytkownicy zrobią cokolwiek w przeglądarce, żeby się wylogować? widziećdjango 1.4 caching GET na / login /

Edytuj 5 (31-12-2012)

Wygląda na to, że jest to problem z pamięcią podręczną… ale nie wiem, jak to naprawić.

to są moje ustawienia buforowania:

if not DEBUG:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
else:
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
        }
    }

Ale próbowałem też bez manekina

EDYCJA 6 (4-styczeń-2013) Nadal nie ma rozwiązania .... Zmieniłem sposób, w jaki wylogowuję się na sposób django, a teraz używam sygnałów ... zobacz moją własną odpowiedź poniżej.

ale nadal daje błąd potknięcia, który powoduje wylogowanie się firefoxa. To nie jest problem z buforowaniem. Jeśli przejdę na inną stronę lub nawet gorzej ... strony administracyjne. Wciąż jestem zalogowany. Jedynym sposobem na wylogowanie się jest wylogowanie na stronie administratora .... Jeśli nie jest to użytkownik admin ... nie ma sposobu, aby mnie wylogować z przeglądarki Firefox.

Podczas wylogowywania się za pomocą interfejsu administratora, sygnał działa dobrze ...

Sprawdziłem, wyłączając sygnał .... i mimo to wylogowanie się z firefox nie działa.

Wniosek: powrót do strony głównej () powoduje problem.

EDYTUJ 7 (4 stycznia 2013 r.) Wykonałem prosty widok logowania do testowania, ten szablon:

<html>
<head>
<title>
Logged out
</title>
</head>
<body>
You are succesfully logged out.<br>
<br>
<a href="/">Go back to the main page</a>
or<br>
<a href="/desktop/login/?next=/">log in again</a>
</body>
</html>

i wylogowany widok:

class LoggedOutView(TemplateView):
    template_name = "iamapps/logged_out.html"

i zmieniłem adresy URL na:

url(r'^logout/$', 'django.contrib.auth.views.logout',  {'next_page': '/desktop/loggedout/'}, name='iamapps.logout'),
#url(r'^logout/$', 'django.contrib.auth.views.logout_then_login',  name='iamapps.logout'),
url(r'^loggedout/$', LoggedOutView.as_view(),name='iamapps.loggedout'),

a mimo to, aby uprościć rzeczy ... Mam wyłączone sygnały.

i nadal nie działa w Firefoksie .... ale działa w Chrome

W firefox nie trafia na wylogowaną stronę

questionAnswers(4)

yourAnswerToTheQuestion