Django Autocomplete with dependences

So, I’m currently porting a py project to Django and I need to implement some autocomplete based on the value of other fields in order to my project to work. Basically, I need the user to select the state and then the city from a list of cities of that previously selected state.

I’m succeeding in the state autocomplete, but not in the city autocomplete.

I have individual classes for Country, State and City to properly store the data. I want to select the data from these classes and save within another class (Project). I’m not currently using the country calss, not until i solve this problem.

So here is my code. Any help or insight are welcome. Thanks!

#models

class Country(models.Model):
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name

class State(models.Model):
    name = models.CharField(max_length=50)
    country = models.ForeignKey(Country, on_delete=models.PROTECT)

    def __str__(self):
        return self.name

    class Meta:
        ordering = ['name']

class City(models.Model):
    name = models.CharField(max_length=50)
    state = models.ForeignKey(State, on_delete=models.PROTECT)

    def __str__(self):
        return self.name

    class Meta:
        ordering = ['name']

class Project(models.Model):
    client = models.CharField(max_length=200)
    seller = models.CharField(max_length=200, null=True, blank=True)
    project_number = models.IntegerField(null=True, blank=True)
    uc = models.CharField(max_length=20)
    doc = models.CharField(max_length=20)
    doc_type = models.CharField(max_length=5)
    branch_city = models.CharField(max_length=50)
    state = models.ForeignKey(State, on_delete=models.PROTECT)
    city = models.ForeignKey(City, on_delete=models.PROTECT)
    street = models.CharField(max_length=200)
    neighborhood = models.CharField(max_length=200)
    #continues

#forms
class CreateUserForm(forms.ModelForm):

    state = forms.ModelChoiceField(queryset=models.State.objects.all())

    city = forms.ModelChoiceField(
        queryset=models.City.objects.none(),
        widget=autocomplete.ModelSelect2(
            url='autocomplete/city/',
            forward=['state']
        )
    )

    class Meta:
        model = models.Project
        fields = ['client', 'seller', 'project_number', 'uc', 'doc',
                  'state', 'city', 'branch_city', 'street', 'neighborhood' #continues]

#views
class CityAutocomplete(autocomplete.Select2QuerySetView):
    def get_queryset(self):
        if not self.forwarded.get('state'): 
            return City.objects.none() 
        qs = City.objects.all() 
        state= self.forwarded.get('state') 
        if state: 
            qs = qs.filter(state=state) 
        if self.q:
            qs = qs.filter(name__icontains=self.q) 
        return qs.order_by('name') 
#urls

path("autocomplete/city/", views.CityAutocomplete.as_view(), name="autocomplete-city")