2012-07-25 3 views
0

Je veux obtenir l'adresse courante quand j'initierai mon formulaire pour trouver dedans une chaîne que je veux vérifier. En fonction de cette chaîne, je souhaite modifier les données que j'ai placées dans un widget radioselect. Je voudrais afficher différents choix radioselect en fonction de l'URL.Django: Récupère l'URL actuelle quand init un widget sous la forme

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') 

Mon point de vue:

def add_function (request) 
if request.method == 'POST': # If the form has been submitted... 
    function_form = FunctionForm(request.get_full_path,request.POST) 

Répondre

3

Il vous suffit de passer dans l'objet de la demande en tant que kwarg lorsque vous instancier la forme.

+0

Alors qu'est-ce que je fais dans mon init? – user1507156

+0

Récupère la requête du dict kwargs. –

Questions connexes