Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django列出与父类匹配的类实例_Python_Django_Web_Django Models_Django Views - Fatal编程技术网

Python Django列出与父类匹配的类实例

Python Django列出与父类匹配的类实例,python,django,web,django-models,django-views,Python,Django,Web,Django Models,Django Views,我是Django的新手,非常感谢您的帮助。我有一节课健身房,还有一节课路线(攀岩健身房和攀岩路线)。每个健身房可以包含多条路线,但每条路线只能属于一个健身房。我可以列出可用的健身房,然后点击其中一个进入健身房页面,但我想列出所有属于它的路线,但不知道怎么做 # /gym/models.py from django.db import models from django.shortcuts import reverse class Gym(models.Model): name =

我是Django的新手,非常感谢您的帮助。我有一节课
健身房
,还有一节课
路线
(攀岩健身房和攀岩路线)。每个
健身房
可以包含多条
路线
,但每条路线只能属于一个健身房。我可以列出可用的健身房,然后点击其中一个进入健身房页面,但我想列出所有属于它的路线,但不知道怎么做

# /gym/models.py

from django.db import models
from django.shortcuts import reverse

class Gym(models.Model):

    name = models.CharField(max_length=100)
    image = models.ImageField(upload_to='gym', default='default_route.jpg')
    address = models.CharField(max_length=200)

    def get_absolute_url(self):
        return reverse('gym:detail', kwargs={'pk': self.pk})

    def __str__(self):
        return self.name
#gym/templates/gym/detail.html
{%extends“base.html”%}
{%block title%}
{{gym_object.pk}
{%endblock title%}
{%block content%}
健身房ID:{{Gym_object.pk}}

{{gym_object.name} {{gym_object.address}

路线 路由_obj:{{routes_obj} {%endblock内容%}

试试这个,谢谢!是否有关于使用
路由设置的文档?我找不到任何东西尝试在django中搜索FK的相关名称
# route/models.py
from django.db import models
from .utils import generate_qrcode

class Route(models.Model):

    Gym = models.ForeignKey('gym.Gym', on_delete=models.CASCADE, null=True)

    grade = models.CharField(max_length=10)
    hold_color = models.CharField(max_length=20, default='')
    rating = models.PositiveIntegerField()
    date = models.DateTimeField(auto_now_add=True)
    image = models.ImageField(upload_to='routes', default='default_route.jpg')

    def __str__(self):
        return str(self.pk)
# gym/views.py

from django.shortcuts import render, get_object_or_404
from django.views.generic import ListView, DetailView
from .models import Gym
from route.models import Route

def gym_list_view(request):
    # Can filter this for specific gyms
    qs = Gym.objects.all()
    return render(request, 'gym/index.html', {'gym_list': qs})

def gym_detail_view(request, pk):
    gym_obj = Gym.objects.get(pk=pk)

    # This is where I don't know how to get the routes that belong to the current gym
    routes_obj = Route.objects.get(pk=pk)

    return render(request, 'gym/detail.html', {'gym_object': gym_obj, 'routes_obj': routes_obj})
# gym/templates/gym/detail.html
{% extends "base.html" %}

{% block title %}
    {{ gym_object.pk }}
{% endblock title %}

{% block content %}

    Gym ID: {{gym_object.pk }} <br><br>

    <h3> {{ gym_object.name }} </h3>
    {{ gym_object.address }}
    <br><br>

    <h4>Routes</h4>
    route_obj: {{ routes_obj }}

{% endblock content %}
def gym_detail_view(request, pk):
    gym_obj = Gym.objects.get(pk=pk)

    # This is where I don't know how to get the routes that belong to the current gym
    routes = gym_obj.route_set.all()

    return render(request, 'gym/detail.html', {'gym_object': gym_obj, 'routes': routes})