Pass value from view to non-model form

25 views
Skip to first unread message

HashRocketSyntax

unread,
Jun 22, 2018, 9:37:26 PM6/22/18
to Django users
When I call my form in my view, I am trying to pass MY_VALUE to the form as an argument.

I am doing this because I want to get my validation out of my views and into my forms.

views.py
OTHER_VALUE = "the query that i run"
if request.method=='POST':
  form = MY_FORM(request.POST, OTHER_VALUE)

forms.py
class MY_FORM(forms.Form):

  real_value
= forms.CharField()
 
def clean_real_value(self):
   
if OTHER_VALUE ...


This throws the error:
__init__() got an unexpected keyword argument 'OTHER_VALUE'


=========

I've tried setting the init with kwargs
class MY_FORM(forms.Form):
  real_value
= forms.CharField()

 
def __init__(self, *args, **kwargs):
    OTHER_VALUE
= kwargs.pop('OTHER_VALUE')
   
super(MY_FORM, self).__init__(*args, **kwargs)


error:
Exception Value: 'employee'
Exception Location: /Users/macbook/Desktop/OrgDB/orgchart/forms.py in __init__, line 42


Tomasz Knapik

unread,
Jun 23, 2018, 9:56:15 AM6/23/18
to django...@googlegroups.com
You get that error because you use kwargs.pop (presumably that's why) and you pass OTHER_VALUE as a positional argument.

E.g.

MY_FORM(request.POST, OTHER_VALUE=OTHER_VALUE)

would pass it as a keyword argument and then you can use kwargs.pop('OTHER_VALUE') in the form's init.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/61a17825-0a19-4573-8893-49e1b715d045%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

HashRocketSyntax

unread,
Jun 23, 2018, 10:19:02 AM6/23/18
to Django users
It seems to like that! `(arg1, OTHER_VAL=OTHER_VAL) 

Now I'm trying to access that other_value:
  def __init__(self, *args, **kwargs):
    OTHER_VAL
= kwargs.get('OTHER_VAL') #tried these:  #kwargs['OTHER_VAL'] #kwargs.pop('OTHER_VAL')
   
super(MY_FORM, self).__init__(*args, **kwargs)


Keep on getting errors like:
`KeyError: 'OTHER_VAL'`
# or 
__init__
() got an unexpected keyword argument 'OTHER_VAL'


Message has been deleted

HashRocketSyntax

unread,
Jun 23, 2018, 11:12:06 AM6/23/18
to Django users
Reply all
Reply to author
Forward
0 new messages