python - I can't use my django model values in forms.py. I get : name 'user' is not defined -
i'm trying use value django model, i'm missing in code , can't figure out is.
i'm using django 1.11
do need form class inherit request? in case,how do that?
from django import forms .models import profile django.contrib.auth.models import user django.shortcuts import render class form(forms.form): department_string = ((user.profile.departnemt_1_number, 'afd a',), ('2', 'afd b',),) afdeling = forms.choicefield(widget=forms.radioselect, choices=department_string, initial='1') i get: exception value: name 'user' not defined
any appreciated!
you can't define @ point; there's no user in scope @ point form defined.
you need override __init__ method of form accept keyword argument user , modify choices appropriately.
class myform(forms.form): afdeling = forms.choicefield(widget=forms.radioselect, initial='1') def __init__(self, *args, **kwargs): user = kwargs.pop('user') super(myform, self).__init__(*args, **kwargs) self.fields['afdeling'].choices = ((user.profile.departnemt_1_number, 'afd a',), ('2', 'afd b',),) don't forget pass user view:
if request.method == 'post': form = myform(request.post, user=request.user) ... else: form = myform(request.post, user=request.user) ...
Comments
Post a Comment