如何从另一个详细信息视图进入详细信息视图并正确获取模板中的所有查询集?

时间:2019-06-28 11:36:57

标签: django django-models django-templates django-views

我需要从另一个详细信息视图进入详细信息视图。.但是我无法清晰地传递查询集...

在型号中:

class Match(models.Model):
    mega_league = models.ManyToManyField('MegaLeague', blank=True)


class MegaPricePoolBreak(models.Model):
    pass


class MegaLeague(models.Model):
    price_pool_break = models.ManyToManyField(MegaPricePoolBreak, blank=True)

在视图中:

def league(request):
    match = Match.objects.all()
    context = {
        'match': match,
    }
    return render(request, 'main/league.html', context=context)


def league_detail(request, pk):
    match = get_object_or_404(Match, pk=pk)
    context = {
        'match': match,
    }
    return render(request, 'main/league_detail.html', context=context)


def league_detail_more(request, pk):
    match = get_object_or_404(Match, pk=pk)
    context = {
        'match': match,
        'title': 'select matches',
    }
    return render(request, 'main/league_detail_more.html', context=context)

league模板中,我传递了{% url 'league_detail' match.pk %}以将查询集从Match传递到league_detail模板中,而在league_detail模板中,我传递了{% url 'league_detail_more' match.pk %} < strong> ---这是主要问题。.它传递了Match的所有pk,但我需要传递match.pk和match.mega_league.pk 才能从Match获取查询集放入league_detail_more模板中。.

在所有模板中,我使用for循环..它正在工作...但是获取特定的pk查询不起作用..

它适用于league_detail模板,但不适用于league_detail_more模板。.league_detail_more中的league_detail模板中的pk传递无效。

如何使用match = get_object_or_404(Match, pk=pk)清楚地获取两个模板的所有查询集?

1 个答案:

答案 0 :(得分:0)

我仍然不太了解您在哪里遇到问题。

如果您只想将两个ID传递给URL,那很简单:

path('league_detail_more/<int:match_id>/<int:league_id>/', league_detail_more, name='league_detail_more')

并在视图中:

def league_detail_more(request, match_id, league_id):
    match = get_object_or_404(Match, pk=match_id)
    league = get_object_or_404(MegaLeague, pk=league_id)