最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django Admin實現三級聯(lián)動的示例代碼(省市區(qū))

 更新時間:2018年06月22日 08:29:15   作者:雷子-LL  
多級菜單在很多上面都有應用,這篇文章主要介紹了Django Admin實現三級聯(lián)動(省市區(qū)),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

通過自定義Admin的模板文件實現省市區(qū)的三級聯(lián)動.要求創(chuàng)建記錄時,根據省>市>區(qū)的順序選擇依次顯示對應數據.

修改記錄時默認顯示已存在的數據.

Model

class Member(models.Model):
  name = models.CharField(max_length=100, verbose_name='姓名')
  province = models.CharField(max_length=100, null=True, blank=True, verbose_name='省份')
  city = models.CharField(max_length=100, null=True, blank=True, verbose_name='城市')
  district = models.CharField(max_length=100, null=True, blank=True, verbose_name='區(qū)/縣')

  class Meta:
    verbose_name_plural = verbose_name = '人員'

  def __str__(self):
    return self.name

View和url

# views
LOCATION = {'吉林省': {'長春市': ['南關區(qū)', '朝陽區(qū)', '二道區(qū)', '綠園區(qū)']}}


def choose_province(request):
  province = list(LOCATION.keys())
  return JsonResponse(province, safe=False)


def choose_city(request):
  province = request.GET.get('p')
  cities = list(LOCATION[province].keys())
  return JsonResponse(cities, safe=False)


def choose_district(request):
  province = request.GET.get('p')
  city = request.GET.get('c')
  districts = LOCATION[province][city]
  return JsonResponse(districts, safe=False)
  
# urls
from person.views import choose_province, choose_city, choose_district

urlpatterns = [
  path('province/', choose_province),
  path('city/', choose_city),
  path('district/', choose_district),
  path('admin/', admin.site.urls),
]

Admin

class MemberForm(forms.ModelForm):
  class Meta:
    widgets = {
      'province': forms.Select(),
      'city': forms.Select(),
      'district': forms.Select()
    }

@admin.register(Member)
class MemberAdmin(admin.ModelAdmin):
  form = MemberForm
  fields = ('name', ('province', 'city', 'district'))
  list_display = ('name', 'province', 'city', 'district')
  change_form_template = 'area.html'

這里需要寫一個form將省市區(qū)這三個字段顯示為單選框.

模板文件

找到django源碼中的change_form.html(django/contrib/admin/templates/admin/)文件,復制到app下templates目錄中.

在admin中指定自定義的模板文件 change_form_template = 'area.html'

{% block admin_change_form_document_ready %}
  <script type="text/javascript"
      id="django-admin-form-add-constants"
      src="{% static 'admin/js/change_form.js' %}"
      {% if adminform and add %}
        data-model-name="{{ opts.model_name }}"
      {% endif %}>
  </script>

  <script type="text/javascript">
    (function($) {
      $('#id_city').change(function() {
        let p_id = $('#id_province').val();
        let c_id = $('#id_city').val();
        $.get('/district/', {"p": p_id, "c": c_id }, function(a_info) {
          var area_info = $('#id_district').empty().append('<option value>' + '---------' + '</option>');
          $.each(a_info, function(i, area) {
            area_info.append('<option value="' + area + '">' + area + '</option>')
          });
          {% if change %}
            $("#id_district").find("option:contains({{ original.district }})").attr('selected', true);
          {% endif %}
        });
      });

      $('#id_province').change(function() {
        let p_id = $('#id_province').val();
        $.get('/city/', { 'p': p_id }, function(c_info) {
          var city_info = $('#id_city').empty().append('<option value>' + '---------' + '</option>');
          $.each(c_info, function(i, city) {
            city_info.append('<option value="' + city + '">' + city + '</option>')
          });
          {% if change %}
            $("#id_city").find("option:contains({{ original.city }})").attr('selected', true);
            $("#id_city").trigger("change");
          {% endif %}
        });
      });

      $.get('/province/', function(p_info) {
        var province_info = $('#id_province').empty().append('<option value>' + '---------' + '</option>');
        $.each(p_info, function(i, province) {
          province_info.append('<option value="' + province + '">' + province + '</option>')
        });
        {% if change %}
          $("#id_province").find("option:contains({{ original.province }})").attr('selected', true);
          $("#id_province").trigger("change");
        {% endif %}
      });
    })(django.jQuery);
  </script>

參考: http://www.fzitv.net/article/142409.htm

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python的ImageTk.PhotoImage大坑及解決

    python的ImageTk.PhotoImage大坑及解決

    這篇文章主要介紹了python的ImageTk.PhotoImage大坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python SOCKET編程基礎入門

    python SOCKET編程基礎入門

    這篇文章主要介紹了python SOCKET編程基礎入門的相關資料,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-02-02
  • python venv和virtualenv模塊詳解

    python venv和virtualenv模塊詳解

    venv 是 Python 內置標準庫中創(chuàng)建輕量級虛擬環(huán)境的工具,本文通過示例代碼介紹python venv和virtualenv的相關知識,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • python使用Pillow創(chuàng)建可自定義的圖標生成器

    python使用Pillow創(chuàng)建可自定義的圖標生成器

    在本篇博客中,我們將探討如何使用?wxPython?和?Pillow?庫創(chuàng)建一個簡單的圖標生成器,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • OpenCV-Python模板匹配人眼的實例

    OpenCV-Python模板匹配人眼的實例

    模板匹配是指在當前圖像A內尋找與圖像B最相似的部分,本文詳細的介紹了OpenCV-Python模板匹配人眼的實例,感興趣的可以了解一下
    2021-06-06
  • 使用Python操作文件系統(tǒng)的方法

    使用Python操作文件系統(tǒng)的方法

    Python提供了許多內置庫來處理文件系統(tǒng),如os、shutil和pathlib等,這些庫可以幫助你創(chuàng)建、刪除、讀取、寫入文件和目錄,這篇文章主要介紹了使用Python操作文件系統(tǒng),需要的朋友可以參考下
    2023-07-07
  • Python中實現常量(Const)功能

    Python中實現常量(Const)功能

    這篇文章主要介紹了Python中實現常量(Const)功能,python語言本身沒有提供const,本文使用一個類來實現常量定義功能,并介紹了使用方法,需要的朋友可以參考下
    2015-01-01
  • python golang中grpc 使用示例代碼詳解

    python golang中grpc 使用示例代碼詳解

    這篇文章主要介紹了python golang中grpc 使用,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • django初始化數據庫的實例

    django初始化數據庫的實例

    今天小編就為大家分享一篇django初始化數據庫的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 在Python中操作字符串之replace()方法的使用

    在Python中操作字符串之replace()方法的使用

    這篇文章主要介紹了在Python中操作字符串之replace()方法的使用,是Python入門中的基礎知識,需要的朋友可以參考下
    2015-05-05

最新評論

乐都县| 右玉县| 金川县| 昌邑市| 古浪县| 冀州市| 晋州市| 阿尔山市| 江华| 咸丰县| 镇安县| 财经| 饶阳县| 五寨县| 威海市| 邛崃市| 沂南县| 阿巴嘎旗| 普洱| 子长县| 黄龙县| 永善县| 北碚区| 盐山县| 万宁市| 垫江县| 武山县| 城口县| 通化市| 金堂县| 广河县| 昌吉市| 鄂州市| 赤水市| 屏东县| 凤翔县| 清徐县| 临洮县| 兰州市| 泰宁县| 滨海县|