python - missing 1 required positional argument: 'queryset' -
i attempting update extended user model profile
in admin.py actions. have been researching couple hours , have come short. receiving pc_add_1() missing 1 required positional argument: 'queryset'
error, please help.
class profileadmininline(admin.stackedinline): model = profile class profileadmin(useradmin): list_display = ['username', 'email', 'first_name', 'last_name', 'is_staff', 'rewards_punch_card', 'rewards_tier', 'credits'] list_select_related = true inlines = [profileadmininline] actions = ['pc_add_1', 'pc_add_2', 'pc_add_3', 'pc_add_4', 'pc_add_5', 'pc_add_6', 'pc_add_7', 'pc_add_8', 'pc_add_9'] def rewards_tier(self, user): return user.profile.rewards_tier def rewards_punch_card(self, user): return user.profile.rewards_current def pc_add_1(self, request, user, queryset): punch_card = user.profile.rewards_current tier = user.profile.rewards_tier credits = user.profile.rewards_credits punch_cards_updated = queryset.update(punch_card + 1) if punch_cards_updated == 10: queryset.update(punch_card == 0) if tier == 1: queryset.update(tier + 1) queryset.update(credits + 25) elif tier == 2: queryset.update(tier + 1) queryset.update(credits + 35) elif tier == 3: queryset.update(tier + 1) queryset.update(credits + 45) elif tier == 4: queryset.update(tier + 1) queryset.update(credits + 55) elif tier == 5: queryset.update(credits + 65) elif tier == 6: queryset.update(credits + 65) else: pass
traceback
internal server error: /admin/auth/user/ traceback (most recent call last): file "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py", line 39, in inner response = get_response(request) file "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) file "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) file "/usr/local/lib/python3.5/site-packages/django/contrib/admin/options.py", line 544, in wrapper return self.admin_site.admin_view(view)(*args, **kwargs) file "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py", line 149, in _wrapped_view response = view_func(request, *args, **kwargs) file "/usr/local/lib/python3.5/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func response = view_func(request, *args, **kwargs) file "/usr/local/lib/python3.5/site-packages/django/contrib/admin/sites.py", line 211, in inner return view(request, *args, **kwargs) file "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py", line 67, in _wrapper return bound_func(*args, **kwargs) file "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py", line 149, in _wrapped_view response = view_func(request, *args, **kwargs) file "/usr/local/lib/python3.5/site-packages/django/utils/decorators.py", line 63, in bound_func return func.__get__(self, type(self))(*args2, **kwargs2) file "/usr/local/lib/python3.5/site-packages/django/contrib/admin/options.py", line 1569, in changelist_view response = self.response_action(request, queryset=cl.get_queryset(request)) file "/usr/local/lib/python3.5/site-packages/django/contrib/admin/options.py", line 1305, in response_action response = func(self, request, queryset) typeerror: pc_add_1() missing 1 required positional argument: 'queryset' [13/nov/2016 15:16:52] "post /admin/auth/user/ http/1.1" 500 106710
you have method signature wrong:
def pc_add_1(self, request, user, queryset):
for admin actions should be
def pc_add_1(self, request, queryset):
now if want know admin user making change can find out request.user
Comments
Post a Comment