Как установить общее динамическое значение для всех моделей Django на странице администратора Django?

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

Я думал использовать cookies, но не могу понять, как внести изменения в forms.py. Я создал API для установки и получения API.

views.py

def setcookie(request):
    response = HttpResponseRedirect('/admin/core/masterfertilizer/add/')
    response.set_cookie('crop', request.GET.get("crop_id"))
    return response


def getcookie(request):
    crop_id = request.COOKIES['crop']
    return JsonResponse({'data': [crop_id]})

admin.py

def response_change(self, request, obj):
   if "_next" in request.POST:
       return redirect(f'/core/setcookie/crop_id?crop_id={obj}')
   return super().response_change(request, obj)

crop.js

function getCropID(){
    let $ = django.jQuery;
    $.get('/core/getcookie/', function(resp){
    console.log(resp);
        document.querySelector('#id_master_crop_id').value=parseInt(x.split(';')[1].split('=')[1]);
        });
}

forms.py

self.fields['master_crop_id'].widget = forms.Select(
     attrs={
     'id': 'id_master_crop_id',
     'onchange': 'getCropID()',
     'style': 'width:200px'
     },
)

hello, возможно, то, что вам нужно здесь, это взглянуть на paginator, и вы можете решить просматривать один элемент, равный странице, так что ваша кнопка next может показать вам следующий объект, и поэтому нет необходимости в cookie для этого.

Вернуться на верх