Django: redirect -> TypeError
views.py
def add_news(request):
if request.method == 'POST':
form = NewsForm(request.POST)
if form.is_valid():
news = Bd.objects.create(**form.cleaned_data)
return redirect(news)
else:
form = NewsForm()
return render(request, 'bord/add_news.html', {'form': form})
add_news.html
{% extends 'base.html' %}
{% block sidebar %}
{% include 'inc/_sidebar.html' %}
{% endblock %}
{% block content %}
<h1>Добавление новости</h1>
<form action="{% url 'add_news' %}" method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary btn-block">Добавить новость</button>
</form>
{% endblock %}
Ответы (1 шт):
Автор решения: Mikhail Sharaborin
→ Ссылка
Скорее всего в модели Bd не указан метод get_absolute_url()
redirect(<цель>[, permanent=False] [, <значения ИRL-параметров>] ) - выполняет перенаправление по заданной цели, в качестве которой могут быть указаны:
- объект модели - вызов метода get_absolute_url() модели;
- имя маршрута (возможно, с указанием пространства имен) и набор значений ИRL-параметров - тогда адрес для перенаправления будет сформирован с применением обратного разрешения. значения URL-параметров могут быть указаны в вызове функции в виде как позиционных, так и именованных параметров;
- непосредственно заданный интернет-адрес.
