Python Django View redirect()

Задание изменить background-color через POST на сервер

Url

path('set_color/', SetColorView.as_view(), name='colors'),

form:

COLORS = (
    ('black', 'black'),
    ('white', 'white'),
    ('red', 'red'),
    ('yellow', 'yellow'),
    ('blue', 'blue'), ) 

class SetColorForm(forms.Form):
     background_color = forms.ChoiceField(choices=COLORS, widget=forms.widgets.RadioSelect)

Template

{% extends 'base.html' %}
{% block content %}
    <form action="" method="post" style="background-color:{{ 
form.field.value|default:'powderblue'}}">
        {% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Set"/>
    </form>
{% endblock %}

View

class SetColorView(View):
    form_class = SetColorForm
    template_name = 'exercises/colors.html'

def get(self, request):
    form = self.form_class
    context = {
        'form': form,
    }
    return render(request, self.template_name, context)

def post(self, request, *args, **kwargs):
    form = self.form_class(request.POST)
    success_url = 'exercises:colors'
    if form.is_valid():
        back_color = form.cleaned_data['background_color']
        return redirect(reverse(success_url, kwargs={'form': back_color}))

Исключение что я получаю: Reverse for 'colors' with keyword arguments '{'form': 'red'}' not found. 1 pattern(s) tried: ['exercises\/set_color\/$']

Что я сделал не так в это строчке "return redirect(reverse(success_url, kwargs={'form': back_color}))" ?


Ответы (0 шт):