【发布时间】:2020-06-27 00:56:28
【问题描述】:
我正在创建这个应用程序,我希望能够向管理员数据库报告电影。目前我可以去看电影,然后点击report,然后被发送到report_form模板。但是当我点击这个模板上的报告按钮时,我只得到这个,并且在数据库中没有任何反应: 异常类型:IntegrityError 异常值:NOT NULL 约束失败:board_report.reporter_id
有人对此有解决方案吗?
report_form.html
{% extends "board/base.html" %}
{% load crispy_forms_tags %}
{% load materializecss %}
{% block content %}
<div class="valign-wrapper row login-box">
<div class="col card hoverable s10 pull-s1 m6 pull-m3 l8 pull-l2">
<form method="POST" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="card-content">
<span class="card-title">Jusity why you want to report this film?</span>
<div class="row">
{{ form|materializecss }}
</div>
</div>
<div class="card-action right-align">
<input type="reset" id="reset" class="btn-flat grey-text waves-effect">
<input type="submit" class="btn green waves-effect waves-light" value="Report">
</div>
</form>
</div>
</div>
{% endblock content %}
models.py
class Report(models.Model):
reason = models.TextField()
reporter = models.ForeignKey(User, on_delete=models.CASCADE, related_name="Reporter")
reports = models.ForeignKey(Film, on_delete=models.CASCADE)
def __str__(self): # pragma: no cover
return f"{self.reports.title} reported by {self.reporter.username}"
def get_absolute_url(self): # pragma: no cover
return reverse("film-detail", kwargs={"pk": self.pk})
views.py
class FilmReport(LoginRequiredMixin, CreateView):
model = Report
fields = ["reason"]
def __str__(self):
return self.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"),
]
【问题讨论】:
-
这意味着您没有为
reporter添加值(也没有为film添加值)。