Как создать ссылку Django Admin с предварительно выбранными объектами и предварительно заполненным действием?
Я пытаюсь сгенерировать ссылку, которая переводит пользователей на страницу Django Admin для определенной модели, с уже выбранными объектами и предварительно заполненным действием в выпадающем меню.
Вот что я пробовал до сих пор:
def get_admin_action_link(record, action):
app_label = record._meta.app_label
model = record._meta.model_name
id = record.id
env = f"{settings.env}.myurl.com" if settings.env else "http://localhost:8000"
return f"{env}/admin/{app_label}/{model}?action={action}&_selected_action={id}"
Сгенерированная ссылка выглядит следующим образом:
http://localhost:8000/admin/app/mymodel?action=process&_selected_action=591
Однако, когда я нажимаю на ссылку, она приводит меня только к представлению списка изменений модели в админке. Объекты не выбраны, и действие не заполнено.
from django.urls import reverse
from urllib.parse import urlencode
def get_admin_action_link(record, action):
app_label = record._meta.app_label
model = record._meta.model_name
id = record.id
changelist_url = reverse(f"admin:{app_label}_{model}_changelist")
query_params = {
"action": action,
"_selected_action": id,
}
base_url = f"{settings.env}.myurl.com" if settings.env else
"http://localhost:8000"
full_url = f"{base_url}{changelist_url}?{urlencode(query_params)}"
return full_url