0

この質問が広すぎることを前もってお詫びしますが、概念化の助けが必要です。

最終的な結果は、半径ベースの検索を有効にしたいということです。私はジャンゴを使用しています。これを行うために、Users と Places という 2 つのクラスがあります。Users クラス内には、ユーザーが検索したい半径を定義する関数があります。Places クラス内には、誰かが郵便番号ではなく都市と州に入った場合の中間点を定義する関数があります (つまり、誰かがニューヨーク州に入ると、多くの郵便番号が関連付けられているため、中間点を見つける必要がありました)。

私はそれらの2つの部分を下に持っています。だから今、私は人々が検索したい半径を持っており、場所の (推定) を知っています. 今、私はこの 2 つを組み合わせたり、これを行う方法を考えたりするのに非常に苦労しています。

ビュー内で相互に検索を試みましたが、テンプレート内の 1 つのモデルをループし、他のモデルの if ステートメントに基づいて結果を表示しようとすると、多くの問題が発生しました。

カスタム テンプレート タグがその問題の解決策になるように思えましたが、最初に問題を正しく概念化していたことを確認したかったのです。すなわち、

  • テンプレートの if 文に基づいて表示したいですか?

  • それとも、モデル ファイル内の他の 2 つのクラスに基づいて別のクラスを作成する必要がありますか?

  • または、モデル ファイル内のクラスの 1 つに対して新しい列を作成する必要がありますか?

私の最終的な質問は、私がやりたいこと (半径ベースの検索を有効にする) に基づいて、ほとんどの作業をどこでどのように行うべきかということだと思います。繰り返しますが、質問が過度に広範である場合はお詫び申し上げます。

4

3 に答える 3

1

おそらく、検索ページをレンダリングするビューに配置できます。

次のようなビュー機能があると仮定しますsearch

  1. ユーザーの半径を取得するrequest.user.get_radius

  2. その半径に基づいて場所を検索しますrelevant_places = Places.get_all_places_in_radius

  3. それらの場所をユーザーにレンダリングする

于 2012-11-02T15:35:18.610 に答える
0

ユーザーが入力した情報をモデルに直接入力できるように、関数をビューに追加することにしました。助けてくれてありがとう。私はおそらくジオジャンゴを調べてしまうでしょう。

于 2012-11-02T19:55:29.980 に答える
0

あなたが説明していることに基づいて、GeoDjango は時間をかけて調べる価値があると思います: http://geodjango.org/

特に、半径ベースの検索を有効にしたい場合、面倒な作業のほとんどは GeoDjango によって既に行われているため、その使用方法を学ぶために少し時間を費やす必要があります (これは、費やす必要があった時間のごく一部です)。いわば「車輪の再発明」)

于 2012-11-02T15:25:52.533 に答える