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()