Почему я получаю либо NoReverseMatch, либо FieldError - PullRequest
1 голос
/ 13 марта 2020

Я работаю над проектом и хочу создать отчет по фильму. (То, что его не существует) В настоящее время я получаю сообщение об ошибке только при попытке go к фильму // или фильму // отчет. Кто-нибудь может мне помочь?

Когда я пробую фильм //: NoReverseMatch; Реверс для «фильма-отчета» без аргументов не найден. Попробовано 1 рисунков: ['film / (? P [0-9] +) / report $']

И фильм // отчет дает: FieldError; Неизвестные поля (сообщения), указанные для отчета

models.py


class Report(models.Model):
    title = models.CharField(default="", max_length=100)
    comment = models.TextField(default="")
    reporter = models.ForeignKey(User, on_delete=models.CASCADE, related_name="Reporter")
    # receiver = models.ForeignKey(
    #     User, on_delete=models.CASCADE, related_name="Receiver"
    # )
    reports = models.ForeignKey(Film, on_delete=models.CASCADE)


    def __str__(self):  # pragma: no cover
        return f"{self.reporter.username} reports {self.reports.title}"

urls.py


urlpatterns = [
    path("", views.films_view, name="board-home"),
    path("film/add", FilmAddView.as_view(), name="film-add"),
    path("film/<int:pk>/", FilmDetailView.as_view(), name="film-detail"),
    path("film/<int:pk>/report", FilmReport.as_view(), name="film-report")
    ]

views.py


class FilmReport(LoginRequiredMixin, UpdateView):
    model = Report
    fields = ["title", "reported"]
    # def __str__(self):
    #     return self.title

    def form_valid(self, form):
        form.instance.author = self.request.user
        return super().form_valid(form)

На этой странице можно нажать «Отчет», а затем перенаправить на страницу отчета.

film_detail. html

image

1 Ответ

0 голосов
/ 13 марта 2020

В вашем классе FilmReport вы можете просто взять файлы из вашей модели Report. Поле «сообщил» не существует. Вы должны взять «репортер» или «отчеты».

Вы можете просто попробовать указанные вами URL, либо фильмы, либо фильмы / репортажи являются действительными URL. Чтобы получить доступ к URL-адресу фильма / 1 / report, в вашей базе данных должен быть хотя бы один объект Film.

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