我如何获得某些国家/地区的城市列表?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何获得某些国家/地区的城市列表?相关的知识,希望对你有一定的参考价值。
我试图显示某些国家city
的城市名称。例如,如果我点击“USA”,它应该显示我的数据库中的城市列表。
但我不知道如何过滤它。
我尝试了这个,但没有出现。
Post.objects.filter(country='country').filter(city='city')
这是我的模特
class Post(models.Model):
title = models.CharField(max_length=255)
country = models.CharField(max_length=255)
city = models.CharField(max_length=255)
address = models.CharField(max_length=255)
email = models.EmailField(max_length=255)
phone = models.CharField(max_length=255)
website = models.CharField(max_length=255)
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('users:blog')
这是我的观点
def cities(request):
context =
'posts': Post.objects.filter(country='country').filter(city='city')
return render(request, 'users/cities.html', context)
这是我的模板:
% for post in posts %
<table class="table table-hover text-left col-sm-6" style="table-layout: fixed; word-wrap: break-word;">
<tbody>
<tr>
<td> post.id </td>
<td> post.city </td>
</tr>
</tbody>
</table>
% endfor %
% endblock %
</div>
答案
您可以使用values_list
并致电distinct()
从Post
模型获取城市名称:
意见
def cities(request):
queryset = Post.objects.filter(country='country').values_list(
'city', flat=True).distinct().order_by('city')
return render(request, 'users/cities.html', 'cities': queryset)
模板
<table>
<tbody>
% for city in cities %
<tr>
<td> city </td>
</tr>
% endfor %
</tbody>
</table>
以上是关于我如何获得某些国家/地区的城市列表?的主要内容,如果未能解决你的问题,请参考以下文章