日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > django--關于Managers

django--關于Managers

來源:程序員人生   發布時間:2015-01-24 09:08:21 閱讀次數:3009次
Default managers

If you use custom Manager objects, take note that the first Manager Django encounters (in the order in which they’re defined in the model) has a special status. Django interprets the first Manager defined in a class as the “default” Manager, and several parts of Django (including dumpdata) will use that Manager exclusively for that model. As a result, it’s a good idea to be careful in your choice of default manager in order to avoid a situation where overriding get_queryset() results in an inability to retrieve objects you’d like to work with.


開始寫了兩個判斷是不是私密的manager,然后發現admin里面的顯示變成了只能顯示私密的File:

class PrivateFileManager(models.Manager): def get_queryset(self): return super(PrivateFileManager, self).get_queryset().filter(public=True) class PublicFileManager(models.Manager): def get_queryset(self): return super(PublicFileManager, self).get_queryset().fileter(public=False) class File(models.Model): file = models.FileField(upload_to='medias') public = models.BooleanField(default=True)# has default project = models.ForeignKey(Project, related_name="projects") tag = models.ManyToManyField(Tag, related_name="tags") uploader = models.ForeignKey(User, related_name="users") group = models.ManyToManyField(Group, related_name="groups") temp_delect = models.BooleanField(default=False)# has default desc = models.TextField(blank=True, null=True) upload_date = models.DateTimeField(auto_now_add=True) change_date = models.DateTimeField(auto_now=True) # Managers blow: privateFiles = PrivateFileManager() publicFiles = PublicFileManager() def __unicode__(self): return self.file.name class Meta: permissions = ( ("can_edit_file", "能編輯文件"), ("can_list_file", "能看文件列表"), ("can_delete_file", "能刪除文件"), ("can_download_file", "能下載文件"), )

然后再仔細看了1下文檔,發現了文章開頭的那段話,大概意思就是定義的第1個manager將會作為默許manager....我果斷加了1個ALL,現在可以正確顯示了,代碼以下:

class AllFileManager(models.Manager): def get_queryset(self): return super(AllFileManager, self).get_queryset().all() class PrivateFileManager(models.Manager): def get_queryset(self): return super(PrivateFileManager, self).get_queryset().filter(public=True) class PublicFileManager(models.Manager): def get_queryset(self): return super(PublicFileManager, self).get_queryset().fileter(public=False) class File(models.Model): file = models.FileField(upload_to='medias') public = models.BooleanField(default=True)# has default project = models.ForeignKey(Project, related_name="projects") tag = models.ManyToManyField(Tag, related_name="tags") uploader = models.ForeignKey(User, related_name="users") group = models.ManyToManyField(Group, related_name="groups") temp_delect = models.BooleanField(default=False)# has default desc = models.TextField(blank=True, null=True) upload_date = models.DateTimeField(auto_now_add=True) change_date = models.DateTimeField(auto_now=True) # Managers blow: allFiles = AllFileManager() # <------------------------------------------------------------- privateFiles = PrivateFileManager() publicFiles = PublicFileManager() def __unicode__(self): return self.file.name class Meta: permissions = ( ("can_edit_file", "能編輯文件"), ("can_list_file", "能看文件列表"), ("can_delete_file", "能刪除文件"), ("can_download_file", "能下載文件"), )

That's all.

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩特黄特色大片免费视频 | 干干干操操操 | 中文精品一区 | 精品国产31久久久久久 | 精品国产精品一区二区夜夜嗨 | 成人观看 | 一级片久久 | 久久久久久久久国产 | 久久久国产精品免费 | 欧美在线视频网站 | 91精品国产综合久久福利不卡 | 中文一区二区视频 | 精品国产乱码久久久久久久 | 国产精品久久久久久久久免费软件 | 亚洲成人福利在线观看 | 亚洲精品国产综合区久久久久久久 | 国产午夜激情视频 | 密臀av| 日韩欧美在线一区二区三区 | 精品一区二区三区久久 | 免费福利视频一区二区三区 | 国产suv精品一区二区四 | 国产精品一区二区在线观看 | 久久久精品视 | 中文成人在线 | 黄色三级视频 | 国产aaa精品| 精品久久网| 黄色片免费看 | 国产精品久久久久久久三级 | 欧美三级电影在线观看 | 欧美精品在线一区 | 精品久久久久久久久久久 | 伊人成人在线视频 | 日韩av片在线 | av片播放 | 欧美精品xxx | av毛片 | 欧美三区视频 | 国产成人午夜视频 | 国产免费自拍 |