Передайте параметр url в качестве аргумента ключевого слова из views.py следующим образом.
form = CityFrom(id=kwargs.get("id"))
Чтобы получить идентификатор в файле forms.py, используйте следующий код в методе __init__
формы.
self.id = kwargs.get('id')
Ваша форма должна выглядеть следующим образом.
CityFrom(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.id = kwargs.get('id')
super(CityFrom,self).__init__(*args, **kwargs)
self.fields['state'] = forms.ModelChoiceField(
empty_label = 'Select',
queryset = State.objects.all()
)
class Meta:
model = City
fields = ('state', 'name')
* Позвоните в super после получения идентификатора в вашей форме, как указано выше. Здесь важен порядок вызова супер.