Передача параметров в URL в Django Admin add_view
Мне нужно передать параметр в URL в представление Django Admin add
, чтобы, когда я набираю URL: http://localhost:8000/admin/myapp/car/add?brand_id=1
, add_view
считывает параметр brand_id
. Я хочу использовать это, чтобы я мог установить значение по умолчанию для атрибута brand
в Car
.
def get_form(self, request, obj=None, **kwargs):
form = super(CarAdmin, self).get_form(request, obj, **kwargs)
form.base_fields['brand'].initial = <<GET['brand_id']>>
return form
Пользовательский случай: Мне это нужно, потому что в моем BrandsAdmin
я добавил кнопку "+" для каждого бренда, которая должна добавить Car
с этим Brand
как FK.
Я пробовал получить его из request
в get_form
, но когда этот код выполняется, Django уже изменил мой URL, поскольку, я полагаю, он не понимает его как "законный" параметр.
Большое спасибо!
Полное объяснение вы можете найти здесь, но вкратце:
Вы можете получить доступ к параметрам запроса непосредственно из представления, у объекта запроса есть метод. Я предполагаю, что это GET-запрос, поэтому примером для вашей реализации будет:
request.GET.getlist("brand_id")
или
request.GET.get("brand_id")