Копирование экземпляра модели и обновление полей - PullRequest
1 голос
/ 22 сентября 2011

Я пытаюсь скопировать экземпляр модели моей страницы и установить статус новой страницы на «черновик».Этот код прекрасно работает в оболочке Django, но в действии администратора, где он живет, создается новый экземпляр, но статус не обновляется.

for page in pages:
        page.pk, page.id = None, None
        page.save()
        page.status = Page.DRAFT
        page.updated_at = datetime.now()
        page.save(force_update=True)

Таким образом, приведенный выше код создает новую страницу, но делаетне изменять его статус.

Я думаю, что это может иметь какое-то отношение к Page, имеющей прокси-модели в зависимости от статуса (ОпубликованоPage, DraftPage и т. д.), хотя я не уверен, в чем проблема.*

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Не.

for page in pages:
    new_page= Page.objects.create(
        this= page.this, that=page.that, ...
        status= Page.DRAFT )

Гораздо проще. Намного понятнее И это действительно работает.

0 голосов
/ 23 сентября 2011

Оказывается, что страница подклассов моделей прокси имела собственный метод сохранения, переопределяющий мои обновления.

...