1,前端样式
2,html代码
{% load asset_filter %}
<div class="col-sm-2"> <select class="input-sm form-control select2 inline" name="ServiceModel"> <option value="">模块</option> {% for i in 'Ecs'|ecs_model_field_distinct:'ServiceModel' %} {% if i.0 %} <option value="{{ i.0 }}">{{ i.0 }}</option> {% endif %} {% endfor %} </select> </div>
3,后端代码
asset_filter.py 内容如下:
@register.filter(name='ecs_model_field_distinct') def ecs_model_field_distinct(model_name, field_name): ''' 获取model_name模块对象的某个属性field_name的distinct值,返回值的数组 :param model_name: :param field_name: :return: ''' asset_app = apps.get_app_config('rule') return asset_app.get_model(model_name).objects.all().values_list(field_name).distinct()