【发布时间】:2019-07-15 10:28:54
【问题描述】:
例如,我有一个国家/地区列表,他们都有自己的网址 www.example.com/al/。但是当我想过滤每个 country_id 的视图时,它给了我这个错误:
get_queryset() 缺少 1 个必需的位置参数:'country_id'
我的模型
class Country(models.Model):
COUNTRY_CHOICES = (
('Albania', 'Albania'),
('Andorra', 'Andorra'),
# etc. etc.
)
name = models.CharField(max_length=255, choices=COUNTRY_CHOICES, default='Netherlands')
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
我的观点
class CityOverview(generic.ListView):
template_name = 'mytemplate.html'
def get_queryset(self, country_id, *args, **kwargs):
return City.objects.get(pk=country_id)
我的网址
# Albania
path('al', views.CityOverview.as_view(), name='al'),
# Andorra
path('ad', views.CityOverview.as_view(), name='ad'),
# etc. etc.
【问题讨论】:
-
这不是您编写 URL 模式的方式。这也不是您编写
get_queryset方法的方式。
标签: python django django-models django-views django-urls