class ChangeCategoryForm(forms.Form): _selected_action = forms.CharField(widget=forms.MultipleHiddenInput) category = forms.ModelChoiceField(queryset=Category.objects.all(), label=u' ')
def move_to_category(modeladmin, request, queryset): form = None if 'apply' in request.POST: form = ChangeCategoryForm(request.POST) if form.is_valid(): category = form.cleaned_data['category'] count = 0 for item in queryset: item.category = category item.save() count += 1 modeladmin.message_user(request, " %s %d ." % (category, count)) return HttpResponseRedirect(request.get_full_path()) if not form: form = ChangeCategoryForm(initial={'_selected_action': request.POST.getlist(admin.ACTION_CHECKBOX_NAME)}) return render(request, 'catalog/move_to_category.html', {'items': queryset,'form': form, 'title':u' '}) move_to_category.short_description = u" "
actions = [move_to_category,]
{% extends "admin/base_site.html" %} {% block content %} <form action="" method="post">{% csrf_token %} {{ form }} <p> :</p> <ul>{{ items|unordered_list }}</ul> <input type="hidden" name="action" value="move_to_category" /> <input type="submit" name="apply" value="" /> </form> {% endblock %}
Source: https://habr.com/ru/post/140409/
All Articles