два слизняка в одном URL, kwargs и args - PullRequest
0 голосов
/ 20 мая 2019

Я хочу, чтобы мой URL был похож на 'slug / slug /', если они не объединены вместе, каждый слаг работает нормально, но когда я пытаюсь объединить эти два, я попадаю в проблему.Я думаю, что могу использовать args и kwargs для этого, но я не знаю, как это применить.

path('series/<slug>/', views.season_pg, name='season_detail'),

def season_pg(request, slug, slug):
    series = Series.objects.get(slug=slug)

    season_nr = Season.objects.get(slug=slug)
    content_dict = {
        'season_nr':season_nr
    }
    return render(request, 'series.html', content_dict)

Models.py

class Series(models.Model):
    name = models.CharField(max_length=128, unique=True)
    genre = models.CharField(max_length=128, default=1)
    tv_or_movie = models.CharField(max_length=128, default=1)
    period = models.CharField(max_length=128, default=1)
    descritpion = models.TextField()
    slug = models.SlugField(unique=True)

    #img
    #video

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return "/%s/" %self.slug




class Season(models.Model):
    series = models.ForeignKey(Series, on_delete=models.CASCADE, blank=True, null=True)
    season_nr = models.CharField(max_length=128, default=1)
    date = models.DateTimeField(auto_now_add = True)
    slug = models.SlugField(unique=True)

    def __str__(self):
        return str(self.season_nr)

1 Ответ

0 голосов
/ 20 мая 2019
path('series/<slug:serie>/<slug:season>/', views.season_pg, name='season_detail'),

def season_pg(request, serie, season):
    try:
        series = Series.objects.get(slug=serie)
    except Series.DoesNotExist:
        # if no rows found
        series = ''
    try:
        season_nr = Season.objects.get(slug=season)
    except Season.DoesNotExist:
        # if no rows found
        season_nr = ''

    context = {
        'series': series,
        'season_nr':season_nr
    }
    return render(request, 'series.html', context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...