Django,TypeError: context must be a dict rather than set

Если убрать {'form', form} то все работает.

views.py

...
def add_news(request):
    if request.method == 'POST':
        pass
    else:
        form = NewsForm()
    return render(request, 'bord/add_news.html', {'form', form})

forms.py

from django import forms
from .models import Category


class NewsForm(forms.Form):
    name = forms.CharField(max_length=50)
    content = forms.CharField()
    is_published = forms.BooleanField()
    category = forms.ModelChoiceField(queryset=Category.objects.all())

add_news.html

{% extends 'base.html' %}

{% block sidebar %}
{% include 'inc/_sidebar.html' %}
{% endblock %}

{% block content %}

<h1>Добавление новости</h1>

<form action="{% url 'add_news' %}" method="post">
      <button type="submit" class="btn btn-primary btn-block">Добавить новость</button>
</form>

{% endblock %}

urls.py

from django.urls import path
from .views import *

urlpatterns = [
    path('', index, name='home'),
    # Создание переменной  category_id  с типом int, это число, которое передается через  url
    path('category/<int:category_id>/', get_category, name='category'),
    path('news/<int:news_id>/', view_news, name='view_news'),
    path('news/add-news/', add_news, name='add_news')
]

введите сюда описание изображения


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

Автор решения: Roman Konoval

Исправьте:

return render(request, 'bord/add_news.html', {'form', form})

на

return render(request, 'bord/add_news.html', {'form': form})

{a, b} создает set из двух элементов. {a: b} - создает dict c одним элементом.

→ Ссылка