Вы не можете сделать это так.Все, что находится на уровне модуля или на уровне класса, определяется при первом импорте модуля, поэтому не может зависеть от URL-адреса.Единственное, что вы можете сделать, - это передать параметр при создании экземпляра формы и изменить выбор, основываясь на этом.Вы можете использовать dict для хранения вариантов выбора, так что форма может просто выбрать соответствующий параметр из параметра:
CHOICE_DICT = {
'phone': (
('Samsung', 'Samsung'),
('iPhone', 'iPhone'),
)
'car': (
('Honda', 'Honda'),
('Toyota', 'Toyota'),
)
}
class Productform(forms.ModelForm):
brand=forms.ChoiceField(choices=brand_choises,widget=forms.Select(attrs={'class':'products'}))
class Meta:
model = Product
def __init__(self, *args, **kwargs):
form_type = kwargs.pop('form_type', None)
super(ProductForm, self).__init__(*args, **kwargs)
self.fields['brand'].choices = CHOICE_DICT[form_type]
, и тогда в вашей форме вы сделаете form = Productform(form_type='car')
или что-то еще.Не забудьте передать его как на POST, так и на GET.