python - Django 没有要重定向到的 URL。提供一个 url 或在模型上定义一个 get_absolute_url 方法
问题描述
您好我正在尝试使用 Django 网络框架创建一个博客。
我得到错误,
No URL to redirect to. Either provide a url or define a get_absolute_url method on the Model.
urls.py 如下所示,
from django.urls import path
from .views import (
BlogListView,
BlogDetailView,
BlogCreateView,
BlogUpdateView,
)
urlpatterns = [
path('post/<int:pk>/edit', BlogUpdateView.as_view(), name='post_edit'),
path('post/new/', BlogCreateView.as_view(), name='post_new'),
path('post/<int:pk>/', BlogDetailView.as_view(), name='post_detail'),
path('', BlogListView.as_view(), name='home'),
]
models.py 如下所示,
from django.db import models
from django.urls import reverse
# Create your models here.
MAX_LENGTH = 500
class Post(models.Model):
title = models.CharField(max_length=MAX_LENGTH)
author = models.ForeignKey('auth.User', on_delete=models.CASCADE,)
body = models.TextField()
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post_detail', args=[str(self.id)])
我哪里错了?
解决方案
从您的缩进来看,您在 Post 类上的方法似乎是在全局范围内。它们应该具有与标题、作者和正文字段相同的缩进(即 4 个空格/1 个制表符)。
推荐阅读
- git - 带有过滤的 git clone(过滤不被服务器识别,忽略。bitbucket 远程)
- oauth - 最后一个过期令牌时如何请求新的刷新令牌?
- php - 如何序列化 php 循环中的 HTML 表单数据
- openlayers - 如何将 WMS 添加到 OpenLayers 5.3.0?
- matlab - 带绘图的 Matlab 并行作业
- python-3.x - tensorflow/PIL/pillow 和 scikit-image 之间的冲突?
- c++ - 如何在 C++ 中模拟覆盖父函数(不隐藏)?
- python - 在临时对象共享相同内存地址的情况下,“is”如何工作?
- sql - SQL 语句:如何检索没有结束日期的记录对应的开始日期
- angular - 如何模拟将返回被拒绝承诺的服务上的函数?