Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中两个模型之间的搜索_Python_Django_Templates_Gis - Fatal编程技术网

Python Django中两个模型之间的搜索

Python Django中两个模型之间的搜索,python,django,templates,gis,Python,Django,Templates,Gis,我提前表示歉意,因为这个问题太宽泛了,但我需要一些概念化方面的帮助 最终的结果是我想启用基于半径的搜索。我用的是Django。为此,我有两个类:用户和地点。在Users类中,有一个函数定义了人们想要搜索的半径。在Places类中,我有一个函数,它定义了如果有人进入一个城市和州而不是一个邮政区时的中点(即,如果有人进入纽约,NY,很多zipcodes都与之关联,因此我需要找到中点) 我把这两部分都记下来了。所以现在我有了一个人们想要搜索的半径,我知道了(估计的)地点。现在,我很难将两者结合起来,甚

我提前表示歉意,因为这个问题太宽泛了,但我需要一些概念化方面的帮助

最终的结果是我想启用基于半径的搜索。我用的是Django。为此,我有两个类:用户和地点。在Users类中,有一个函数定义了人们想要搜索的半径。在Places类中,我有一个函数,它定义了如果有人进入一个城市和州而不是一个邮政区时的中点(即,如果有人进入纽约,NY,很多zipcodes都与之关联,因此我需要找到中点)

我把这两部分都记下来了。所以现在我有了一个人们想要搜索的半径,我知道了(估计的)地点。现在,我很难将两者结合起来,甚至思考如何做到这一点

我试图在视图中相互搜索,但是当我在模板中循环一个模型,但试图根据另一个模型的if语句显示结果时,遇到了很多麻烦

看起来定制模板标签是解决这个问题的方法,但我想首先确保我正确地概念化了这个问题。即

  • 是否要基于模板中的if语句进行显示

  • 或者我应该基于模型文件中的其他两个类创建另一个类

  • 还是应该为模型文件中的一个类创建一个新列


我想我的最终问题是,基于我想做什么(启用基于半径的搜索),大部分工作应该在哪里/如何完成?如果问题过于宽泛,我再次表示歉意。

根据您的描述,我相信GeoDjango值得您花时间研究:


特别是如果你想启用基于半径的搜索,大部分繁重的工作已经由GeoDjango完成,你只需要花一些时间学习如何使用它(可以说,这只是你“重新发明轮子”所需时间的一小部分)

也许您可以将其放在呈现搜索页面的视图中

a如果您有类似于
search
的查看功能,您可以:

  • 获取用户半径
    request.user.get\u radius

  • 基于该半径搜索位置
    相关位置=位置。获取半径中的所有位置

  • 向用户呈现这些位置


  • 我刚刚决定将该函数添加到视图中,以便在用户输入信息后直接将其输入到模型中。谢谢你的帮助。我可能会去查詹戈

    我觉得geodjango对于我想做的事情来说太过分了,所以我正确地使用了zipcode数据库。我可以去geodjango,但我觉得我离解决方案很近了。我有我需要的所有信息,我只需要整合它。谢谢你的建议。我会用过滤器吗?例如,Places.objects.filter(…)。。。我想我在这里被挂断了,因为我的中点值是一个函数。。。是否有一些我缺少的文档可以帮助我解决这个问题?你是如何将所有的zipcodes放在一个半径内的?你有功能了吗?如果你不知道,Jango将非常有用,你可以保存邮政编码及其对应的lat/lng,然后使用
    搜索半径内的所有邮政编码。filter
    我有一个函数,可以获取用户想要搜索的半径,还有一个函数,可以获取地点的位置。两者都是纬度和经度坐标。然而,它们存在于不同的类中,我对如何集成它们很感兴趣。