あなたの質問はカスタムDjango admin urlに関連しているようです。 まず、場所のエンドポイントを検索するためのURLのポイントを定義し、場所
from django.contrib import admin
from django.http import JsonResponse
class MapAdmin(admin.ModelAdmin):
def get_urls(self):
admin_view = self.admin_site.admin_view
info = self.model._meta.app_label, self.model._meta.model_name
urls = [
url(r'^search_location$', admin_view(self.search_location), name=("%s_%s_search_location" % (info))),
]
return urls + super(VideoAdmin, self).get_urls()
def search_location(self, request, *args, **kwargs):
map = request.GET.get('map')
# Do something with map param to get location.
# Set safe=False if location_data is an array.
return JsonResponse(["""..location_data"""], safe=False)
次に、テンプレート・ファイル内のどこかを検索するエンドポイントを提供するために、あなたのMAPADMINを更新します。そのURLを使用して、地図が変更されたら位置データ を取得します。
var searchLocationUrl = "{% url 'admin:appName_mapModel_search_location' %}";
私はテンプレートファイルを持っていないので、私は混乱していると思います。私は管理者だけで働いています。私は自分の.jsファイルを持っています。ここで私はajax呼び出しを行っています。どのようにして私の.jsファイルにそのajax URLを取得できますか?また、私は情報変数を理解していないとなぜURLのために必要ですか? – pinksharpii
'info'は、URLの名前を明確にする接頭辞です。たとえば、アプリケーションが' CMS'であり、モデルが 'Map'で、URL名が' admin:cms_map_search_location'になります。代わりに 'info'を使用しました。 あなたのプロジェクトの管理者用URLプレフィックスがわかりませんが、あなたが言及したajax URLは次のとおりです: '/ admin/cms/map/search_location' –
ありがとう、私は最終的に正しいURLを知ることができました。 map_object = serializers.serialize( 'json'、Map.objects.filter(id = map_id))を使ってマップオブジェクトを取得して返す – pinksharpii