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

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -