社区所有版块导航
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学习  »  问与答

[精华] 请问一下,model中的ManyToManyFields,在admin中怎么筛选数据?

hls_hh • 11 年前 • 11503 次点击  

大家好,请教大家一个问题, 我在model中定义有这样定义

class Equipment(models.Model):
    pid = models.CharField(max_length=32, blank=False, verbose_name=_(u'PID'))
    type = models.ForeignKey(EquipmentType, blank=False, verbose_name=_(u'设备类型'))
    area = models.ManyToManyField(Area, blank=False, verbose_name=_(u'设备区域'))
    mac = models.CharField(max_length=32, blank=False, verbose_name=_(u'MAC'))

class Meta:
    verbose_name = _(u'设备信息')
    verbose_name_plural = verbose_name

def __unicode__(self):
     return _(u'设备:%(pid)s') % {'pid':self.pid}

这样我在使用admin中添加数据的时候,会将Area中的数据列出来,供我选择,但现在的情况是,我需要根据用户的权限,去判断,只显示Area中的部分数据。我理解的admin.py中添加queryset(如下面程序),是用来筛选整个 Equipment的,

 def queryset(self):
    qs = super(UserAreaPermissionAdmin,self).queryset()
    if self.request.user.is_superuser:
        return qs
    else:
        return qs.filter(user = self.request.user)

但我现在需要的是admin界面中添加Equipment的时候,界面中提供的area选项,是我筛选过的,不知道在哪里设置,请大家指教,谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/100
 
11503 次点击  
文章 [ 7 ]  |  最新文章 11 年前