Fill an admin panel field and then retrive it and use to fill another field
I have this admin.py code:
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
and this models.py codes:
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,)
how to change the get_form function in admin panel to fill province field and then retrieve it and use to fill city field (just show cities that belong to that province)
with that get_form function I get this as output:
None
None