django filter過濾器實現顯示某個型別指定欄位不同值
阿新 • • 發佈:2018-10-31
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()