Django: Получить текущий URL при инициализации виджета в форме
Я хочу получить текущий URL, когда я запускаю форму, чтобы найти в ней строку, которую я хочу проверить. В зависимости от этой строки, я хочу изменить данные, которые я поместил в виджет радиоселекта. Я хотел бы отобразить различные варианты радиоселект в зависимости от URL.
class FunctionForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
# get url
url=request.get_full_path
# treat url
string = treat_url(url)
if (string=='ATC'):
self.fields['function_name'].queryset= FUNCTION_ATC_CHOICES
if (string=='ATS'):
self.fields['function_name'].queryset= FUNCTION_ATS_CHOICES
super(FunctionForm,self).__init__(*args,**kwargs)
#function_name = forms.ChoiceField(widget=RadioSelect,choices=FUNCTION_ATC_CHOICES)
class Meta :
model = Function
exclude =('session_number')
Мой взгляд:
def add_function (request)
if request.method == 'POST': # If the form has been submitted...
function_form = FunctionForm(request.get_full_path,request.POST)
1 ответ
Решение
Вам просто нужно передать объект запроса как kwarg, когда вы создаете экземпляр формы.