首页 > 其他分享 >级联下拉的实现方式(如省市县)-1 Smart Selects方式

级联下拉的实现方式(如省市县)-1 Smart Selects方式

时间:2023-07-01 19:22:28浏览次数:39  
标签:__ 级联 name models self continent Selects class Smart

https://django-smart-selects.readthedocs.io/en/latest/usage.html

特点: 简单,不容易定制,适合简单的关联下拉,只能是table-table

有单选、多选、guoup分组等3种组合

from django.db import models
from smart_selects.db_fields import (  ChainedForeignKey,    ChainedManyToManyField,    GroupedForeignKey,
)

class Continent(models.Model):
    name = models.CharField(max_length=255)
    def __str__(self):
        return "%s" % self.name

class Country(models.Model):
    continent = models.ForeignKey(Continent, on_delete=models.CASCADE)
    name = models.CharField(max_length=255)
    def __str__(self):
        return "%s" % self.name


class Location(models.Model):

    continent = models.ForeignKey(Continent, on_delete=models.CASCADE)
    country = ChainedForeignKey(
        "Country",
        chained_field="continent",
        chained_model_field="continent",
        show_all=False,
        auto_choose=True,
        null=True,
        blank=True
    )
    city = models.CharField(max_length=50)
    street = models.CharField(max_length=100)

我在录入location时候, 选择 contient,根据大陆筛选country

 

 

关键代码:

class LocationForm(forms.ModelForm):
    class Meta:
        model = Location
        fields = '__all__'
    def clean(self):
        cleaned_data = super().clean()

locationCreate.html

{% extends 'appsmarts/base.html' %}
{% load crispy_forms_tags %}
{% load static %}

{% block content %}

<form action='.' method='POST'>{% csrf_token %}
    <script src="{% static 'js/jquery-3.3.1.min.js' %}"></script>
    <script src="{% static 'smart-selects/admin/js/bindfields.js' %}"></script>
    <script src="{% static 'smart-selects/admin/js/chainedfk.js' %}"></script>
    {{ form|crispy}}
    <input type='submit' value='Save' />
</form>

{% endblock %}

js必须放在form tab里面,不知为什么。

smartSelect lib用的js,调用的是google cdb,组好复制到本地,改掉

 

总之,容易用,但是限制太多 1.只能table-table  2.根据权限不好筛选

 

标签:__,级联,name,models,self,continent,Selects,class,Smart
From: https://www.cnblogs.com/lxgbky/p/17519750.html

相关文章

  • 西门子V20变频器和200Smart通讯程序
    西门子V20变频器和200Smart通讯程序。    硬件配置有:西门子ST2O一台,威伦触摸屏TK607OiQ一台,V2O变频器一台,三相220∨小电机一个。                            程序功能介绍:使用MODBUS通讯控制变频器正转,反转,......
  • 如何通过抓包分析EasyCVR级联时不回复上级平台的invite请求?
    EasyCVR平台基于云边端协同架构,可支持多协议、多类型的海量设备接入与分发,平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,在线下均有大量应用。有用户反馈,在级联时,使用EasyCVR作为下级平台,将摄像头接入后再转推给上级平台,但是上级平台却无法播放,请求我们协助排查......
  • 如何通过抓包分析EasyCVR级联时不回复上级平台的invite请求?
    EasyCVR平台基于云边端协同架构,可支持多协议、多类型的海量设备接入与分发,平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,在线下均有大量应用。有用户反馈,在级联时,使用EasyCVR作为下级平台,将摄像头接入后再转推给上级平台,但是上级平台却无法播放,请求我们协助排查。由......
  • EasyCVR级联后上级在线,请求播放显示端口不可达是什么原因?
    EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级......
  • 将 SmartAssembly 与单文件可执行文件一起使用 (.NET Core 6)
    .NETCore6引入了创建单文件可执行文件的功能。这只允许分发一个应用程序文件,因为所有配置和依赖项都包含在二进制文件本身中。该功能为依赖项嵌入提供了一种本机方法,这在发布生成数百个程序集的独立应用程序时最有益。它可用于依赖于框架或自包含的应用程序,但在这两种情况下都......
  • RAKsmart有奖问答,爆款免费领,前30名送随机微信红包!!!
    为更好的了解客户需求及RAKsmart自信不足,即日起,RAKsmart将推出有奖问卷调查,参与问卷调查即可领取SV1024MVPS使用一个月,同时,前30名参与问卷调查,可领取微信随机1~10元不等,送完即止,快来参与吧!活动时间:美国西岸圣何塞时间 06/26/2023~07/10/2023问卷调查地址:https://www.wenjuan.com/......
  • 什么是 SAP Commerce Cloud SmartEdit 的 preview API
    PreviewAPI使得SmartEdit能够将商户网站加载到请求的体验环境上的iframe中。体验环境是指特定站点、目录和目录版本的商户网站,并且还可以是指定的语言、日期和时间。为了以指定的体验环境呈现商户网站,SmartEdit将请求的商户网站加载到请求的体验环境的iframe中。为了在请求的体验......
  • SAP Commerce Cloud 通过 SmartEdit 添加 Component 的一个例子
    如下图所示:位于ProductListLot内:url:http://localhost:4200/electronics-spa/en/USD/Open-Catalogue/Cameras/Digital-Cameras/Digital-Compacts/c/576观察到的OCC请求:https://localhost:9002/occ/v2/electronics-spa/cms/pages?pageType=CategoryPage&code=576&lang=en&......
  • Spartacus Storefront 里如何在 SmartEdit 访问环境下暂时禁用 Early login
    关于SpartacusEarlylogin的功能,即如果当前客户没有登录,则显示loginpage.而不是显示原始页面。有的客户期望Spartacus在SmartEdit环境下预览时,暂时禁掉这个功能。首先,开发人员应该分析与需求相关的所有后果并对安全威胁进行建模,然后考虑是否接受它们,例如:某些功能页......
  • 安卓开发级联显示菜单-省市区显示举例
    问题背景安卓日常开发过程,经常会有需要级联显示的场景,比如省市区显示等,或者各种组织结构级联显示,本文将介绍安卓开发过程实现级联显示的一种方案。实现效果如下:问题分析思路分析:考虑将要是的省、市、区设计成一种字典迭代结构,数据结构如下:/***组织实体类*/classOrgan......