社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

django 怎么获取list_filter的值

sixgodquduoduo • 11 年前 • 10017 次点击  

在django model中 有app_name, app_size字段 现在modeladmin中有list_filter = [app_name, app_size]

talk is cheap, show you the code:

class XXX(models.Model):
    app_name = models.CharField(XXX)

class XXXAdmin(admin.ModelAdmin):
    list_filter = [app_name, ]

上述代码会在过滤器中把所有不重复的app_name显示出来,并可以过滤查询,如果我想要得到显示的这些app_name,django有现成的方式实现吗?如果没有,有什么高效的方式去获取呢?

小弟接触django时间不是很长,但是遇到了现在这个问题,自己网上google了许多,官方文档也看了,但还是没有找到答案,也许我看得不够仔细,希望各位大大能指出来 求助各位大神,希望得到各位的帮助,谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/494
 
10017 次点击  
文章 [ 6 ]  |  最新文章 11 年前
sixgodquduoduo
Reply   •   1 楼
sixgodquduoduo    11 年前

@Django中国社区 不好意思,几天没来。谢谢啦~

Py站长
Reply   •   2 楼
Py站长    11 年前

@sixgodquduoduo 在你的model里加个函数,函数返回:

self._meta.get_all_field_names()

写个View来调用model这个函数,然后显示在页面上

sixgodquduoduo
Reply   •   3 楼
sixgodquduoduo    11 年前

@Django中国社区 在web页面上,有一个下拉框显示所有的app_name以供选择

Py站长
Reply   •   4 楼
Py站长    11 年前

@sixgodquduoduo 你要在哪里显示?

sixgodquduoduo
Reply   •   5 楼
sixgodquduoduo    11 年前

@Django中国社区 谢谢!很感激你的热心帮助。 不过可能是我的提问有所误导了。这个app_name,并不是django的application的name,是一个model里面的某个字段,用来存放游戏名称的。modeladmin中用list_filter在web页面上提供一个根据app_name筛选的过滤器,然后现在需要用到去重的app_name。尽量用django的方式,不用sql,有没有办法呢?

Py站长
Reply   •   6 楼
Py站长    11 年前
from django.db.models import get_models

for model in get_models():
    # Do something with your model here
    print model.__name__, [x.name for x in model._meta.fields]

http://stackoverflow.com/questions/4111244/get-a-list-of-all-installed-applications-in-django-and-their-attributes