CreateView工作正常,UpdateView导致405个“页面无法正常工作”

时间:2019-07-27 14:37:57

标签: python django

我正在Django中学习基于类的视图,我的CreateView正确加载了表单,并且当单击Submit时,它将重定向到创建的新对象的详细信息页面; UpdateView会执行相同的操作,但是单击“提交”时,会出现错误405。

这似乎是一个普遍的问题,我在这里针对类似问题找到了不同的解决方案,但没有一个对我有用。我被困了几天,所以真的很感谢任何提示。由于我正在学习,所以我想对为什么会发生这种情况进行一些解释,而不是我必须复制/粘贴的一些代码。 谢谢大家。

#my urls.py
app_name = 'articles'
urlpatterns = [
    path('', ArticleListView.as_view(), name='article-list'),
    path('create/', ArticleCreateView.as_view(), name='article-create'),
    path('<int:id>/update', ArticleUpdateView.as_view(), name='article-update'),
    path('<int:id>/', ArticleDetailView.as_view(), name='article-detail')
#models.py
class Article(models.Model):
    title = models.CharField(max_length=120)
    content = models.CharField(max_length=255)

    def get_absolute_url(self):
        return reverse("articles:article-detail", kwargs={"id": self.id})
# relevant part of views.py
class ArticleCreateView(CreateView):
    template_name = 'blog/article_create.html'
    form_class = ArticleForm
    queryset = Article.objects.all()

    def form_valid(self, form):
        print(form.cleaned_data)
        return super().form_valid(form)


class ArticleUpdateView(UpdateView):
    template_name = 'blog/article_create.html'
    form_class = ArticleForm
    queryset = Article.objects.all()

    def get_object(self):
        id_ = self.kwargs.get("id")
        return get_object_or_404(Article, id=id_)

    def form_valid(self, form):
        print(form.cleaned_data)
        return super().form_valid(form)
<form action="." method="POST">
    {% csrf_token %}
    {{form.as_p }}
    <input type="submit" value="Save" />
</form>

0 个答案:

没有答案