我有两个相似的模型,一个公共管理器,它为当前登录的用户返回查询集。我想要user_places.current_user.get(place=xxx)返回现有的user_place()对象或空的user_places(),当不出现texist异常时。怎么可能?如果我是对的,那么CurrentUserManager对用户位置和用户项目模型一无所知?
我只是不想总是写:
try:
places = User_Places.current_user.get(place=XXX)
except:
places = User_Places()
我的型号代码:
class User_Places(models.Model):
place = models.ForeignKey('Place')
user = models.ForeignKey(User)
current_user = CurrentUserManager()
class User_Projects(models.Model):
project = models.ForeignKey('Project')
user = models.ForeignKey(User)
current_user = CurrentUserManager()
class CurrentUserManager(models.Manager):
def get_query_set(self):
user = threadlocals.get_current_user()
qs = super(CurrentUserManager, self).get_query_set()
if user:
qs = qs.filter(user=user)
return qs
def get(self, *args, **kwargs):
try:
object = super(CurrentUserManager, self).get(*args, **kwargs)
except:
object = ????????????????????????
return object