NoReverseMatch at / urlresolvers 的反向错误,get_absolute_url()

2024-03-25

函数 get_absolute_url() 中 url reverse() 出错

无法反转每个模型(serial_slug)中的 url,但 url 本身存在!

这是主 url.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),

    url(r'^series/', include("serials.urls", namespace='series')),
    url(r'^', include("serials.urls", namespace='homeview')),

]

这是我的应用程序中的 urls.py

from django.conf.urls import include, url
from .views import homeview, post_of_serial, post_of_season, post_of_serie

urlpatterns = [
   url(r'^$', homeview, name='homeview'),  # /series/
   url(r'^(?P<serial_slug>[\w-]+)/$', post_of_serial, name='post_of_serial'),  # /series/Prison_Break/
   url(r'^(?P<serial_slug>[\w-]+)/(?P<season_slug>[\w-]+)/$', post_of_season, name='post_of_season'),  # /series/Prison_Break/season_5/
   url(r'^(?P<serial_slug>[\w-]+)/(?P<season_slug>[\w-]+)/(?P<series_slug>[\w-]+)/$', post_of_serie, name='post_of_serie'),  # /series/Prison_Break/season_5/2/  

]

这是 models.py

class Season(models.Model):
    id                                      = models.AutoField(primary_key=True)
    name_of_the_season                      = models.CharField(max_length=40)
    slug                                    = models.SlugField(unique=False, blank=True) 
    name_for_easy_access                    = models.CharField(max_length=40)
    preview_of_season                       = models.ImageField(upload_to="previews/preview_for_season/", default=None,width_field="width_field", height_field="height_field")
    width_field                             = models.IntegerField(default=150)
    height_field                            = models.IntegerField(default=150)
    number_of_released_series               = models.IntegerField(default=0)
    serial_for_this_season                  = models.ForeignKey("Serial", on_delete=models.CASCADE, default=True)
    a_lot_of_series                         = models.ManyToManyField("Series", default=None, blank=True)
    year                                    = models.IntegerField(default=2017)
    timestamp                               = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated                                 = models.DateTimeField(auto_now_add=False, auto_now=True)
    is_active                               = models.BooleanField(default=True)


    def get_absolute_url(self):
        return reverse('series:post_of_season', kwargs=
                      {'serial_slug': self.serial_for_this_season.slug,
                      'season_slug': self.slug,
                      })

    def __str__(self):
        return "%s" % self.name_for_easy_access

    class Meta:
        ordering                            = ["-timestamp"]
        verbose_name                        = 'Season'
        verbose_name_plural                 = 'Seasons'


class Serial(models.Model):
    id                                      = models.AutoField(primary_key=True)
    rus_name_of_seriall                     = models.CharField(max_length=40)
    eng_name_of_seriall                     = models.CharField(max_length=40)
    slug                                    = models.SlugField(unique=False, blank=True) 
    number_of_serial                        = models.DecimalField(max_digits=10, decimal_places=2, default=True)
    preview_of_serial                       = models.ImageField(upload_to="previews/preview_for_serials/", default=None,width_field="width_field", height_field="height_field")
    width_field                             = models.IntegerField(default=0)
    height_field                            = models.IntegerField(default=0)
    seasonss                                = models.ManyToManyField(Season, default=None, blank=True)
    timestamp                               = models.DateField(auto_now_add=True)
    end_or_in_proccess                      = models.ForeignKey(Status, default=None)
    timestamp                               = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated                                 = models.DateTimeField(auto_now_add=False, auto_now=True)
    is_active                               = models.BooleanField(default=True)

    def get_absolute_url(self):
        return reverse('series:post_of_serial', kwargs={'serial_slug': self.slug})


    def __str__(self):
        return "%s" % self.rus_name_of_seriall

    class Meta:
        ordering                            = ["-timestamp"]
        verbose_name                        = 'Serial'
        verbose_name_plural                 = 'Serials'



class Series(models.Model):
    id                                      = models.AutoField(primary_key=True)
    rus_name                                = models.CharField(max_length=60) 
    eng_name                                = models.CharField(max_length=60) 
    is_active                               = models.BooleanField(default=True)
    serial_of_this_series                   = models.ForeignKey(Serial, on_delete=models.CASCADE, default=True)
    season_of_this_series                   = models.ForeignKey(Season, on_delete=models.CASCADE, default=True)
    number_of_series                        = models.IntegerField(default=0, blank=True, null=True)
    slug                                    = models.SlugField(unique=False, blank=True) 
    description                             = models.TextField(max_length=700, blank=True, default=None) 
    rating                                  = models.FloatField(default=0, blank=True)  
    timestamp_rus                           = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated                                 = models.DateTimeField(auto_now_add=False, auto_now=True)
    timestamp_eng                           = models.CharField(max_length=60) 
    time_of_series                          = models.DecimalField(max_digits=10, decimal_places=2, default=0)

    def get_absolute_url(self):
        return reverse('series:post_of_serie', kwargs=
                      {'serial_slug': self.serial_of_this_series.slug,
                       'season_slug': self.season_of_this_series.slug,
                       'series_slug': self.slug})

    def __str__(self):
        return "%s | %s" % (self.rus_name, self.number_of_series)

    class Meta:
        ordering                            = ["-timestamp_rus"]
        verbose_name                        = 'Series'
        verbose_name_plural                 = 'Series'

使用参数“()”和关键字参数反转“post_of_serial” '{'serial_slug': ''}' 未找到。尝试了 1 个模式: ['系列/(?P[\w-]+)/$']

(lookup_view_s、args、kwargs、len(模式)、模式) django.urls.exceptions.NoReverseMatch:“post_of_serial”的反向 使用参数 '()' 和关键字参数 '{'serial_slug': ''}' 不 成立。尝试了 1 个模式:['series/(?P[\w-]+)/$']


从此改变

slug           = models.SlugField(unique=False, blank=True)

to this

slug           = models.SlugField(unique=False)

从所有 slug 字段中删除“blank=True”,它就会起作用!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NoReverseMatch at / urlresolvers 的反向错误,get_absolute_url() 的相关文章

  • Pip install 导致此错误“ cl.exe' failed with exit code 2 ”

    我已经阅读了有关此错误的所有其他问题 但令人沮丧的是 没有一个给出有效的解决方案 如果我跑pip install sentencepiece在命令行中 它给出了以下输出 src sentencepiece sentencepiece wra
  • 十六进制数的按位异或

    我们如何在 Python 中对十六进制数进行异或 例如 我想要异或 ABCD and 12EF 答案应该是 B922 我使用了下面的代码 但它给出了错误的结果 xor two strings of different lengths def
  • 可移植的非关系数据库

    我想尝试 尝试非关系数据库 最好的解决方案是 便携式 这意味着它不需要安装 理想情况下 只需将目录复制粘贴到某个地方即可使其工作 我不介意第一次使用时是否需要编辑一些配置文件或运行配置工具 可从 python 访问 适用于 Windows
  • 在 keras 中使用自定义张量流操作

    我在张量流中有一个脚本 其中包含自定义张量流操作 我想将代码移植到 keras 但我不确定如何在 keras 代码中调用自定义操作 我想在 keras 中使用tensorflow 所以到目前为止我发现的教程描述了与我想要的相反的内容 htt
  • Selenium Webdriver - Python - leboncoin - pb 选择带重音的按钮

    我正在尝试在以下网站上自动填写表格 https www leboncoin fr https www leboncoin fr 我用 Selenium IDE 录制了一个脚本 我有一个通过单击 Se 连接器 按钮并填写我的密码和用户名来自动
  • Pyinstaller --onefile 警告文件已存在但不应存在

    跑步时Pyinstaller onefile 并开始得到结果 exe 会出现多个弹出窗口 并显示以下警告 WARNING file already exists but should not C Users myuser AppData L
  • 当 DetailView 遇到时更新模型字段。 [姜戈]

    我有一个类似的 DetailViewviews py views py class CustomView DetailView context object name content model models AppModel templa
  • 在ansible中合并字典

    我目前正在构建一个使用 ansible 安装 PHP 的角色 并且在合并字典时遇到一些困难 我尝试了多种方法来做到这一点 但我无法让它像我想要的那样工作 A vars file my default values key value my
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 如何使用 jira-python 设置 fixVersions 字段

    我正在尝试使用 jira python 模块 http jira python readthedocs org en latest 更新现有的 JIRA 具体来说 我正在尝试设置问题的fixesVersion 列表 我已经尝试了一段时间但没
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 如何使用 msgpack 进行读写?

    如何序列化 反序列化字典data with msgpack http msgpack org The Python 文档 http msgpack python readthedocs io en latest badge latest似乎
  • 提交表格并上传带有请求的文件

    我正在努力提交特定的表格蟒蛇请求 http www python requests org 我想使用它的网站上的其他表单工作正常 我可以提交登录表单等 这只是我遇到问题的文件上传 显然 提交表单效果很好 因为我从网站收到一条消息 说 请返回
  • 如何在 Python 中执行相当于预处理器指令的操作?

    有没有办法在 Python 中执行以下预处理器指令 if DEBUG lt do some code gt else lt do some other code gt endif There s debug 这是编译器预处理的特殊值 if
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • 使用 Flask-SQLAlchemy 进行多对多多数据库连接

    我正在尝试使这个多对多联接与 Flask SQLAlchemy 和两个 MySQL 数据库一起工作 并且它非常接近 只是它为联接表使用了错误的数据库 这是基础知识 我有main db and vendor db 表格设置为main db u
  • psutil:测量特定进程的CPU使用率

    我正在尝试测量进程树的 cpu 使用率 目前获取进程 没有子进程 的 cpu usage 就可以了 但我得到了奇怪的结果 import psutil p psutil Process PID p cpu percent 还给我float g
  • django 组合对两个不同基本模型的查询

    我有两个不同的查询集 我想将两个查询集合并 q1 tbl nt 123 objects values list id value geometry filter restriction height exclude condition id
  • django管理员登录后重定向到另一个页面

    我正在 Django 中制作一个自定义管理页面 我不想重新发明轮子 因此想使用 Django 管理登录表单让员工登录并随后将他们重定向到 my url 但是 我无法找到在 admin 成功登录后将用户重定向到自定义网址的方法 因为我偶然发现
  • Jinja2中获取请求参数

    如何检索请求参数a在 Jinja2 模板中 http foo bar a 1 我这个答案有点晚了 但其他解决方案并没有真正考虑到您对 Flask 的使用 事实上 您将 Flask 与 Jinja2 一起使用 这使得您的情况与其他框架有点不同

随机推荐