On Jan 29, 7:02 am, vierda <m...@pensil.com> wrote:
> dear all,
> I have problem when using delete_object generic views, the code always
> raise error delete_object() takes at least 3 non-keyword arguments (0
> given) but I think I have provided 4 arguments. my code as per below.
> Thank you for any kind help.
>
> views.py :
>
> def delete_profile(request):
>    user = request.user
>    if user.is_superuser:
>       user_list = User.objects.all()
>       for user in user_list:
>          user_id = User.objects.get(id=user.id)
>       return delete_object(model=User, object_id=user_id,
> post_delete_redirect='/notify/delete_done/', template_name=
> 'delete.html', login_required=True)
>
> template:
>
> <h1> Delete User </h1>
> <br>
> <p> Please select username below for delete profile </p>
> <br>
> <form id ="delete"  method="POST" action="/accounts/delete/">
>    <p> username : <select name ="delete_user">
>    {% for user in user_list %}
>      <option value = "{{ user.id }}"> {{ user.username }} </option>
>    {% endfor %}
>    </select>
>    </p>
>    <p><input type="submit" value="delete"></p>
> </form>

No, you have provided four keyword arguments. The signature for the
delete_object function is as follows:
def delete_object(request, model, post_delete_redirect,
object_id=None,
        slug=None, slug_field='slug', template_name=None,
        template_loader=loader, extra_context=None,
login_required=False,
        context_processors=None, template_object_name='object'):

So you need to pass request, model and post_delete_redirect *without*
keywords, as simple positional arguments:
return delete_object(request, User, '/notify/delete_done/',
template_name='delete.html', login_required=True)

However more of a worry is the code before that call. I'm not sure
what you think it is doing, but it isn't doing it. If the user is a
superuser, it's iterating through all users in the database, getting
their user ID, then immediately discarding it. It will then pass the
ID of the *last* user to delete_object. I suspect that isn't what you
wanted.
--
DR.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to