Ошибка типа: элемент последовательности 0: ожидаемый экземпляр str, при добавлении элемента новостей в приложение Django обнаружен кортеж - PullRequest
0 голосов
/ 30 марта 2019

Я создаю новостной сайт и у меня возникают проблемы с добавлением новой статьи.

Это ошибка, которую я получаю, нажимая на ссылку New:

Internal Server Error: /news/new/
Traceback (most recent call last):
  File "/Users/paulcarron/.local/share/virtualenvs/lakelandcc-6nBitmwo/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
  File "/Users/paulcarron/.local/share/virtualenvs/lakelandcc-6nBitmwo/lib/python3.7/site-packages/django/core/handlers/base.py", line 156, in _get_response
response = self.process_exception_by_middleware(e, request)
  File "/Users/paulcarron/.local/share/virtualenvs/lakelandcc-6nBitmwo/lib/python3.7/site-packages/django/core/handlers/base.py", line 154, in _get_response
response = response.render()
  File "/Users/paulcarron/.local/share/virtualenvs/lakelandcc-6nBitmwo/lib/python3.7/site-packages/django/template/response.py", line 106, in render
self.content = self.rendered_content
  File "/Users/paulcarron/.local/share/virtualenvs/lakelandcc-6nBitmwo/lib/python3.7/site-packages/django/template/response.py", line 81, in rendered_content
template = self.resolve_template(self.template_name)
  File "/Users/paulcarron/.local/share/virtualenvs/lakelandcc-6nBitmwo/lib/python3.7/site-packages/django/template/response.py", line 63, in resolve_template
return select_template(template, using=self.using)
  File "/Users/paulcarron/.local/share/virtualenvs/lakelandcc-6nBitmwo/lib/python3.7/site-packages/django/template/loader.py", line 47, in select_template
raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain)
TypeError: sequence item 0: expected str instance, tuple found
[29/Mar/2019 20:55:53] "GET /news/new/ HTTP/1.1" 500 76945

Ниже приведены мои различные файлы:

urls.py

from django.urls import path

from .views import (
    NewsListView,
    NewsUpdateView,
    NewsDetailView,
    NewsDeleteView,
    NewsCreateView,
)


urlpatterns = [
    path('<int:pk>/edit/',
     NewsUpdateView.as_view(), name='news_edit'),
    path('<int:pk>/',
         NewsDetailView.as_view(), name='news_detail'),
    path('<int:pk>/delete/',
         NewsDeleteView.as_view(), name='news_delete'),
    path('new/', NewsCreateView.as_view(), name='news_new'),
    path('', NewsListView.as_view(), name='news_list'),
]

views.py

from django.views.generic import ListView, DetailView
from django.views.generic.edit import UpdateView, DeleteView, CreateView
from django.urls import reverse_lazy

from .models import News


class NewsListView(ListView):
    model = News
    template_name = 'news_list.html'


class NewsDetailView(DetailView):
    model = News
    template_name = 'news_detail.html'


class NewsUpdateView(UpdateView):
    model = News
    fields = ('title', 'body',)
    template_name = 'news_edit.html'


class NewsDeleteView(DeleteView):
    model = News
    template_name = 'news_delete.html'
    success_url = reverse_lazy('news_list')


class NewsCreateView(CreateView):
    model = News
    template_name = 'news_new.html',
    fields = ('title', 'body', 'author',)

Это ссылка в моем base.html:

<li class="nav-item"><a href="{% url 'news_new' %}">+ New</a></li>

Наконец, это моя страница news_new.html:

{% extends 'base.html' %}

{% block content %}
    <h1>New news item</h1>
    <form action="" method="post">{% csrf_token %}
        {{ form.as_p }}
        <button class="btn btn-success ml-2" type="submit">Save</button>
    </form>
{% endblock content %}

Я не вижу, что я пропустил или сделал неправильно. Кто-нибудь может помочь?

1 Ответ

2 голосов
/ 30 марта 2019

У вас есть запятая после имени шаблона в вашем классе NewsCreateView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...