Перенаправление на администраторе Сохраняет

Как Daniel Lew упомянул, циклические графики имеют некоторые проблемы. Если бы у меня была эта проблема, то я или добавил бы особенный clone() методы к проблематичным объектам или помнил бы, какие объекты я уже скопировал.

я сделал бы это с переменной copyCount, который увеличивается к 1 каждому разу, когда Вы копируете в своем коде. Копируется объект, который имеет более низкое copyCount, чем текущий процесс копии. В противном случае на копию, которая уже существует, нужно сослаться. Это заставляет связываться от оригинала до его копии.

существует все еще одна проблема: Память. Если у Вас есть эта ссылка от одного объекта до другого, вероятно, что браузер не может освободить те объекты, поскольку от них всегда ссылаются где-нибудь. Необходимо было бы сделать вторую передачу, где Вы устанавливаете все ссылки копии в NULL. (Если бы Вы делаете это, Вы не должны были бы иметь copyCount, но булевская переменная isCopied была бы достаточно, поскольку можно сбросить значение во второй передаче.)

25
задан juliomalegria 27 November 2012 в 06:48
поделиться

3 ответа

def change_view (self, request, object_id, extra_context = None):

result = super(mymodeladmin, self).change_view(request, object_id, extra_context)

result['Location'] = "your location"

return result
-9
ответ дан 28 November 2019 в 17:37
поделиться

Может быть, взгляните на пространства имен URL ... Вероятно, вы могли бы использовать HttpResponseRedirect + reverse для перенаправления пользователя внутри вашего переопределенного метода сохранения. Имейте в виду, что это новая функция в Django 1.1 и не поддерживается в 1.0.x.

http://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces

0
ответ дан 28 November 2019 в 17:37
поделиться

Чтобы изменить назначение перенаправления после сохранения в админке, необходимо переопределить response_add () (для добавления новых экземпляров) и response_change () (для изменения существующих) в классе ModelAdmin .

См. исходный код в django.contrib.admin.options .

И если вы хотите, чтобы люди продолжали помогать вы в StackOverflow, вам необходимо принять ответы на свои вопросы.

Быстрые примеры, чтобы прояснить, как это сделать (в классе ModelAdmin):

from django.core.urlresolvers import reverse

def response_add(self, request, obj, post_url_continue=None):
    """This makes the response after adding go to another apps changelist for some model"""
    return HttpResponseRedirect(reverse("admin:otherappname_modelname_changelist"))


def response_change(self, request, obj, post_url_continue=None):
    """This makes the response go to the newly created model's change page
    without using reverse"""
    return HttpResponseRedirect("../%s" % obj.id])
93
ответ дан 28 November 2019 в 17:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: