Заполнить поле панели администратора, а затем извлечь его и использовать для заполнения другого поля
У меня есть такой код admin.py:
class ElectionAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
print(obj.province)
if obj:
if form.base_fields['province']:
form.base_fields['city'].queryset = City.objects.filter(province_id=form.base_fields['province'])
else:
form.base_fields['city'].queryset = City.objects.none()
else:
form.base_fields['city'].queryset = City.objects.none()
return form
и этот код models.py:
class Province(models.Model):
name = models.CharField(max_length=70, unique=True, null=True, blank=True,)
class City(models.Model):
province = models.ForeignKey("election.Province", on_delete=models.CASCADE)
name = models.CharField(max_length=70, unique=True, null=True, blank=True,)
class Election(models.Model):
province = models.ForeignKey("election.Province", on_delete=models.SET_NULL, null=True, blank=True,)
city = models.ForeignKey("election.City", on_delete=models.SET_NULL, null=True, blank=True,)
как изменить функцию get_form в админ панели для заполнения поля province, а затем получить его и использовать для заполнения поля city (просто показать города, которые принадлежат к этой провинции)
С помощью этой функции get_form я получаю следующее:
None
None