Проблемы, связанные с ModelAdmin в Django - PullRequest
0 голосов
/ 03 марта 2020

Ниже приведен мой код в файле admin.py.

class JobAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('title', 'organization',)}
    save_as = True

admin.site.register(Job, JobAdmin)

Выпуск № 1:

Я пытаюсь предварительно заполнить мой слаг, используя 2 разных поля. Поле заголовка заполняется правильно, тогда как поле организации является полем внешнего ключа, которое также заполняется, но имеет целочисленное значение. Я хотел бы, чтобы это поле заполнилось его первоначальным значением, которое является полем имени в модели организации. Чтобы добиться этого, я попытался изменить поле организации следующим образом:

class JobAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('title', 'organization__name',)}

Но это дает мне ошибку.

ERRORS:
<class 'jobs.admin.JobAdmin'>: (admin.E030) The value of 'prepopulated_fields["slug"][0]' refers to 'organization__name', which is not an attribute of 'jobs.Job'.

System check identified 1 issue (0 silenced).

Проблема № 2:

save_as = True не активирует кнопку «Сохранить как новую». Я ссылался на Django Административный документ , но я не могу понять, что еще нужно сделать, чтобы это сделать.

Я был бы очень благодарен, если бы кто-нибудь смог мне помочь исправление этих проблем. Спасибо за ваше время и помощь заранее!

1 Ответ

1 голос
/ 03 марта 2020

Выпуск 1:

В соответствии с документами , предварительно заполненные поля выполняются через Javascript. Синтаксис, который вы используете, это Django ORM синтаксис. Я не думаю, что вы можете использовать свойство связанных полей там. Вы можете использовать только свойства данной модели.

Если установлено, для указанных полей будет использоваться бит JavaScript для заполнения из назначенных полей.

Выпуск 2:

Это все, что вам нужно сделать. Возможно ли, что вы искали кнопку, когда создавали новое задание?

...