Read about python version difference in function overloading domain ------>ModelForm.__init__(self, *args, **kwargs) # this can be different
On Mon, Jun 14, 2010 at 2:06 AM, Jani Rahkola <[email protected]>wrote: > Hei, > > I hope someone could shed some light on this one. > I have these in their appropriate files: > > class ShoppinglistForm(ModelForm): > > def __init__(self, user=False, *args, **kwargs): > ModelForm.__init__(self, *args, **kwargs) > self.fields['pantry'].empty_label = None > if user: > self.fields['pantry'].queryset = > Product.objects.filter(owner=user) > > class Meta: > model = Shoppinglist > > def new(request): > if request.method == 'POST': > form = ShoppinglistForm(request.POST) > if form.is_valid(): > try: > list = Shoppinglist(name=form.cleaned_data['name'], > > pantry=form.cleaned_data['pantry']) > list.save() > return redirect('blackem.users.views.home') > except ObjectDoesNotExist: > return redirect('blackem.users.views.home') > else: > form = ShoppinglistForm(user = request.user) > return render_to_response('shoppinglists/shoppinglist_form.html', > {'form': form, > 'logged': True}, > > context_instance=RequestContext(request)) > > After pressing Submit on the form, I get this: > > Traceback: > File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" > in get_response > 100. response = callback(request, > *callback_args, **callback_kwargs) > File "/usr/lib/python2.6/site-packages/django/contrib/auth/ > decorators.py" in _wrapped_view > 25. return view_func(request, *args, **kwargs) > File "/home/jani/projects/blackem/shoppinglists/views.py" in new > 20. form = ShoppinglistForm(request.POST) > File "/home/jani/projects/blackem/shoppinglists/models.py" in __init__ > 18. self.fields['pantry'].queryset = > Pantry.objects.filter(owner=my_user) > File "/usr/lib/python2.6/site-packages/django/db/models/manager.py" in > filter > 141. return self.get_query_set().filter(*args, **kwargs) > File "/usr/lib/python2.6/site-packages/django/db/models/query.py" in > filter > 550. return self._filter_or_exclude(False, *args, **kwargs) > File "/usr/lib/python2.6/site-packages/django/db/models/query.py" in > _filter_or_exclude > 568. clone.query.add_q(Q(*args, **kwargs)) > File "/usr/lib/python2.6/site-packages/django/db/models/sql/query.py" > in add_q > 1131. can_reuse=used_aliases) > File "/usr/lib/python2.6/site-packages/django/db/models/sql/query.py" > in add_filter > 1071. connector) > File "/usr/lib/python2.6/site-packages/django/db/models/sql/where.py" > in add > 66. value = obj.prepare(lookup_type, value) > File "/usr/lib/python2.6/site-packages/django/db/models/sql/where.py" > in prepare > 299. return self.field.get_prep_lookup(lookup_type, > value) > File "/usr/lib/python2.6/site-packages/django/db/models/fields/ > related.py" in get_prep_lookup > 134. return self._pk_trace(value, 'get_prep_lookup', > lookup_type) > File "/usr/lib/python2.6/site-packages/django/db/models/fields/ > related.py" in _pk_trace > 196. v = getattr(field, prep_func)(lookup_type, v, **kwargs) > File "/usr/lib/python2.6/site-packages/django/db/models/fields/ > __init__.py" in get_prep_lookup > 292. return self.get_prep_value(value) > File "/usr/lib/python2.6/site-packages/django/db/models/fields/ > __init__.py" in get_prep_value > 476. return int(value) > > Exception Type: TypeError at /shoppinglists/new > Exception Value: int() argument must be a string or a number, not > 'QueryDict' > > Taking away the 'user' keyword argument makes it work nicely. But I > need to include only the user's pantries in the choices of the select > wiget. > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<django-users%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

