【问题标题】:Error: Reverse for 'article-detail' not found. 'article-detail' is not a valid view function or pattern name错误:找不到“文章详细信息”的反向。 'article-detail' 不是有效的视图函数或模式名称
【发布时间】:2020-07-31 18:13:34
【问题描述】:

我正在尝试在我的一个模型函数中使用反向,但是当我将 url 的名称放在反向时,它会显示标题的错误,我不确定为什么会发生这种情况,这里是网址和模型的代码。

models.py

from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse

# Create your models here.

class Post(models.Model):
    title = models.CharField(max_length= 255)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    body = models.TextField()

    def __str__(self):
        return self.title + ' | ' + str(self.author)
    
    def get_absolute_url(self):
        return reverse('article-detail', args =(str(self.id)))

app/urls.py

from django.urls import path
from app1 import views
from .views import PostView, ArticleDetailView, AddPostView

app_name = 'app1'

urlpatterns = [
    path('register/', views.register, name = 'register'),
    path('user_login/', views.user_login, name = 'user_login'),
    path('post/', PostView.as_view(), name = 'Post'),
    path('article/<int:pk>', ArticleDetailView.as_view(), name = 'article-detail'),
    path('add_post/',AddPostView.as_view(), name='addpost')
]

urls.py

from django.contrib import admin
from django.urls import path, include
from app1 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name = "index"),
    path('app1/', include('app1.urls')),
    path('logout/', views.user_logout, name='logout')
    
]

如果有人能告诉我为什么显示此错误,我将不胜感激,我确定它在 models.py 的最后一行,但我不明白为什么它会弹出,因为名称与我要调用的网址。

【问题讨论】:

标签: python django url post frame


【解决方案1】:

您忘记提及 app_name。 试试这个

class Post(models.Model):
    title = models.CharField(max_length= 255)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    body = models.TextField()

    def __str__(self):
        return self.title + ' | ' + str(self.author)
    
    def get_absolute_url(self):
        # return reverse('article-detail', args =(str(self.id)))
        return reverse('app1:article-detail', args = [str(self.id))]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-19
    • 2020-12-24
    • 2020-12-11
    • 1970-01-01
    • 2020-05-30
    • 2018-01-25
    • 2020-12-01
    • 2019-06-27
    相关资源
    最近更新 更多