django - Django QuerySet 什么都不返回
问题描述
我有一个国家/地区列表,例如,它们都有自己的网址 www.example.com/al/。每个国家/地区都有一个城市列表,但 object_list 为空
我的观点:
class CityOverview(generic.ListView):
template_name = 'shisha/pages/country_index.html'
model = City
def get_queryset(self, *args, **kwargs):
country_id = self.kwargs.get('country_id')
return City.objects.filter(country__name=country_id)
我的模型:
class Country(models.Model):
COUNTRY_CHOICES = (
('al', 'Albania'),
('ad', 'Andorra'),
#etc. etc.
)
name = models.CharField(max_length=255, choices=COUNTRY_CHOICES, default='nl')
def __str__(self):
return self.name
class City(models.Model):
country = models.ForeignKey(Country, on_delete=models.CASCADE)
name = models.CharField(max_length=250)
def __str__(self):
return self.name
我的网址:
path('<str:country_id>', views.CityOverview.as_view(), name='country'),
我的模板:
{{ object_list }}
它返回一个空的 QuerySet
<QuerySet []>
有谁知道问题是什么?
解决方案
问题是你试图匹配country__name
到country_id
. 将最后一行更改为get_queryset
现在return City.objects.filter(country__id=country_id)
将根据的国家 ID过滤country_id
提供的内容。City
推荐阅读
- c# - VS Installer Projects - 安装后执行一些代码
- python - 如何修改/更新 Pydatatable 中某个条件的列值?
- clojure - 如何将 Java 字符串转换为 EDN 对象?
- python-3.x - 如何在 python 中使用 pypeteer 为网站设置多个 cookie
- javascript - 当前 HTML 页面在新选项卡中打开时滚动(网络中没有 JS),如何避免滚动?
- reactjs - HOC组件如何设置key?
- java - 为什么单击登录后我的应用程序总是崩溃?
- php - [Route:..] 缺少所需参数是否有解决方案?
- html - 春季 MVC CRUD 操作中的更新方法不起作用
- pgadmin-4 - 在 centos 7 中运行 pgadmin4