Вызывает ли декоратор django-lazysignup allow_lazy_user дважды упакованное представление? - PullRequest
0 голосов
/ 12 марта 2012

Я использую "django-lazysignup 0.8" с Django 1.3.

Когда я делаю это:

Вид

@allow_lazy_user
def page_edit(request):
if request.method == 'GET':
    if is_lazy_user(request.user):
        b2 = Page.objects.create(user=request.user)
        print request.user.username
        return render_to_response('page_editor.html',{'page':b2})

вывод консоли показывает, что вид, по-видимому, вызывается дважды (b2 вызывается дважды и дважды создает объект страницы, а печать печати печатается дважды)

Вот экран вывода:

Выход:

7707089a583a424caf0face130cb20  # this is the reult of  print request.user.username 
[12/Mar/2012 15:02:45] "GET /edit/ HTTP/1.1" 200 8368
7707089a583a424caf0face130cb20
[12/Mar/2012 15:02:46] "GET /edit/images/favicon.ico HTTP/1.1" 200 8368

Мне не нужно, чтобы это происходило, представление нужно вызвать один раз и создать один объект Page. Есть ли решение?

1 Ответ

1 голос
/ 12 марта 2012

Не думаю, что это связано с Django-lazysignup.

Если вы посмотрите URL для второго запроса:

/edit/images/favicon.ico

Мне кажется, что ваш браузер пытается загрузить значок сайта. Это говорит о том, что вы использовали относительный путь images/favicon.ico вместо абсолютного пути /images/favicon.ico.

Не совсем верно, что URL-адрес favicon вызвал page_edit view. Это говорит о том, что в вашем шаблоне URL отсутствует $ для обозначения конца строки. Вы должны изменить его на что-то вроде:

url('^edit/$', 'page_edit'),
...