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 -~----------~----~----~----~------~----~------~--~---