我如何获得某些国家/地区的城市列表?

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>

以上是关于我如何获得某些国家/地区的城市列表?的主要内容,如果未能解决你的问题,请参考以下文章

地理 IP 和国家/地区/城市数据库

获取iOS时区中的城市和国家/地区列表

如何在ios中获取州,国家/地区列表

如何使用pygeoip从国家、地区代码获取纬度、经度

是否有任何 API 用于获取所有国家并通过国家/地区获取所有州/地区并再次通过州/地区获取其中的所有城市

如何在 mern 堆栈中获取注册表单的国家/地区列表?