Gre*_*reg 5 django django-models django-orm
我很好奇是否有最佳实践或推荐的方法来实现这一目标?
说我有这样的模型:
class Cat(models.Model):
field1=models.CharField(...)
field2=models.CharField(...)
evil=models.BooleanField(...)
Run Code Online (Sandbox Code Playgroud)
我想要完成的是我不希望任何视图能够访问邪恶为真的Cat记录.
我是否真的需要在每个Cat.objects.filter调用中添加.filter(evil = False),或者是否有某种方法可以在课堂上执行此操作并使邪恶的猫从未出现在任何地方?
好的,自定义经理可以适应这里.只需看看文档.就像克里斯普拉特所说的那样,请记住第一位经理成为默认经理.
希望这会导致正确的方向.
更新(也许你可以这样做):
from django.db import models
class EvilCategoryManager(models.Manager):
def get_query_set(self):
return super(EvilCategoryManager, self).get_query_set().filter(evil=False)
class Cat(models.Model):
#.... atrributes here
objects = models.Manager()
no_evil_cats = EvilCategoryManager()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4086 次 |
| 最近记录: |