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.

Reply via email to