如何修复 Django url-routing、get_object_or_404 和 Slug 中的此类错误?

用户8113566

如何准确获取url中指定的系列,但是所有系列的名字都是一样的,应该是一样的,但是只取系列本身的网址,即只搜索网址系列,但不是如何,所以这个系列是在 URL 中指定的系列中,也是在季节中,这里的 URL 中指定的数量是 url

Url 工作正常,但我无法转到正确的系列!

urlpatterns = [
   url(r'^$', homeview, name='homeview'),
   url(r'^subscribe/$', validate_email, name='subscribe'),   # /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/  

]

楷模

class Series(models.Model):
    id                                          = models.AutoField(primary_key=True)
    rus_name                                    = models.CharField(max_length=60) 
    eng_name                                    = models.CharField(max_length=60) 
    slug                                        = models.SlugField(unique=False) 
    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)
    description                                 = models.TextField(max_length=700, blank=True, default=None)
    size_of_torent_file                         = models.CharField(max_length=60, default=None)
    link_for_dowloand_serie_in_quality_360p     = models.CharField(max_length=60, default=None)      
    link_for_dowloand_serie_in_quality_720p     = models.CharField(max_length=60, default=None)      
    link_for_dowloand_serie_in_quality_1080p    = models.CharField(max_length=60, default=None)      
    rating                                      = models.FloatField(default=0, blank=True)  
    is_active                                   = models.BooleanField(default=True)
    timestamp_rus                               = models.DateField(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=42)



    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'

视图.py

def post_of_serie(request, serial_slug=None, season_slug=None, series_slug=None):
    serie                           = get_object_or_404(Series, serial_of_this_series=serial_slug, season_of_this_series=season_slug, slug=series_slug)
    #series_2                       = Series.objects.filter(serial_of_this_series=serial_slug, season_of_this_series=season_slug, slug=series_slug )
    context                         = {"serie":serie,}
    return render(request, 'series.html', context)

上面版本错误

ValueError at /series/Colony/Season_1/episode_1/

invalid literal for int() with base 10: 'Colony'

也有这样的选项,但是由于这样的名称已经存在而出现错误。事实上,系列和季节的名称应该是一样的!

def post_of_serie(request, serial_slug=None, season_slug=None, series_slug=None):
    serie                           = get_object_or_404(Series, slug=series_slug)
    context                         = {"serie":serie,}
    return render(request, 'series.html', context)
扎伊法齐尔

尝试像这样编辑您的视图,

def post_of_serie(request, serial_slug=None, season_slug=None, series_slug=None):
    serie = get_object_or_404(Series, serial_of_this_series__slug=serial_slug, season_of_this_series__slug=season_slug, slug=series_slug)
    context = {"serie":serie,}
    return render(request, 'series.html', context)

serial_of_this_series是另一个表的ForeignKey,所以在访问该字段时,django会自动提供对应表的primary_key。通过查看您的错误,您似乎没有明确地将该slug字段指定为 primary_key,然后由 django 自动提供的自动递增整数字段试图与您刚刚提供的 slug 匹配。我建议访问表中的相应字段,例如serial_of_this_series__slug表中的slug字段(或任何字段名称)以Serial进行查询过滤。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django中的get_list_or_404和get_object_or_404之间的确切区别是什么?

来自分类Dev

如何将slug字段中的url发送到Django中的url中

来自分类Dev

使用Slug访问url时在Django中出现NoReverseMatch错误

来自分类Dev

生成Django sitemap.xml:如何修复“ get_absolute_url”错误

来自分类Dev

将slug_url_kwargs和pk_url_kwargs用于get_object()的区别

来自分类Dev

详情视图中的Django get_object_or_404未返回Page模型中的所有字段

来自分类Dev

Laravel路由错误404 / {slug}和参数{domain}

来自分类Dev

如何从汉字生成url slug?

来自分类Dev

htaccess slug 404错误

来自分类Dev

如何在当前模板中获取当前 url 的 slug

来自分类Dev

Django Slug URL未显示页面

来自分类Dev

Django 2.1 调用旧的 slug url 变量

来自分类Dev

URL Slug php和htaccess问题

来自分类Dev

如何在Django中创建403和404错误的页面?

来自分类Dev

如何修复Django中的连接错误

来自分类Dev

如何修复Django错误MultiValueDictKeyError

来自分类Dev

带有多个 slug 的 Django url,没有反向匹配错误

来自分类Dev

我是否应该在Django URL中也使用slug字段?

来自分类Dev

在网址中同时显示Slug和ID,但仅在Django中按ID进行路由

来自分类Dev

如何修复在我的 GET URL 中更改的日期格式

来自分类Dev

URL重写(SLUG)和URL重定向(htaccess)

来自分类Dev

如何修复此类模板错误?

来自分类Dev

如何在Django中保存Slug Automatic?

来自分类Dev

Django 3:用于UpdateView的get_object_or_404

来自分类Dev

在MVC中显示URL Slug而不是ID

来自分类Dev

从 Laravel 中的 url 获取最新的 slug

来自分类Dev

如何在Scala中修复此类型不匹配错误?

来自分类Dev

更改Django中的slug使用slugify

来自分类Dev

django slug,未在模型中定义

Related 相关文章

  1. 1

    Django中的get_list_or_404和get_object_or_404之间的确切区别是什么?

  2. 2

    如何将slug字段中的url发送到Django中的url中

  3. 3

    使用Slug访问url时在Django中出现NoReverseMatch错误

  4. 4

    生成Django sitemap.xml:如何修复“ get_absolute_url”错误

  5. 5

    将slug_url_kwargs和pk_url_kwargs用于get_object()的区别

  6. 6

    详情视图中的Django get_object_or_404未返回Page模型中的所有字段

  7. 7

    Laravel路由错误404 / {slug}和参数{domain}

  8. 8

    如何从汉字生成url slug?

  9. 9

    htaccess slug 404错误

  10. 10

    如何在当前模板中获取当前 url 的 slug

  11. 11

    Django Slug URL未显示页面

  12. 12

    Django 2.1 调用旧的 slug url 变量

  13. 13

    URL Slug php和htaccess问题

  14. 14

    如何在Django中创建403和404错误的页面?

  15. 15

    如何修复Django中的连接错误

  16. 16

    如何修复Django错误MultiValueDictKeyError

  17. 17

    带有多个 slug 的 Django url,没有反向匹配错误

  18. 18

    我是否应该在Django URL中也使用slug字段?

  19. 19

    在网址中同时显示Slug和ID,但仅在Django中按ID进行路由

  20. 20

    如何修复在我的 GET URL 中更改的日期格式

  21. 21

    URL重写(SLUG)和URL重定向(htaccess)

  22. 22

    如何修复此类模板错误?

  23. 23

    如何在Django中保存Slug Automatic?

  24. 24

    Django 3:用于UpdateView的get_object_or_404

  25. 25

    在MVC中显示URL Slug而不是ID

  26. 26

    从 Laravel 中的 url 获取最新的 slug

  27. 27

    如何在Scala中修复此类型不匹配错误?

  28. 28

    更改Django中的slug使用slugify

  29. 29

    django slug,未在模型中定义

热门标签

归档