Python 如何获取特定国家的城市列表?
我试图显示某个国家的城市名称Python 如何获取特定国家的城市列表?,python,mysql,django,Python,Mysql,Django,我试图显示某个国家的城市名称{{{city}。 例如,如果我单击“美国”,它将显示我数据库中的城市列表。 但我不知道如何正确过滤 我试过了,但什么也没发现 Post.objects.filter(country='country').filter(city='city') 这是我的模型 class Post(models.Model): title = models.CharField(max_length=255) country = models.CharField(max
{{{city}
。
例如,如果我单击“美国”,它将显示我数据库中的城市列表。但我不知道如何正确过滤 我试过了,但什么也没发现
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>
{%for posts in posts%}
{{post.id}
{{post.city}}
{%endfor%}
{%endblock%}
您可以使用并调用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>
{城市中城市的百分比%}
{{城市}
{%endfor%}
我认为您的逻辑有一些错误。您确定知道如何使用Django的过滤吗?您是否在Post
表中有country='country',city='city'
的列?我有表country和city这是您的表coutry和city?Mohit Harshan。它在我的数据库里。