Как установить общее динамическое значение для всех моделей 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 для этого.