1
我有兩個具有一個公共Manager的相似模型,它返回當前登錄用戶的queryset。當DoesNotExist異常引發時,我希望User_Places.current_user.get(place = XXX)返回現有的User_Place()對象或空的User_Places()。這怎麼可能?如果我是正確的,CurrentUserManager不知道關於User_Places和User_Projects模型的任何信息?調整queryset.get以便在模型管理器中無DoesNotExist異常工作
我只是不想總是寫:
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
UserProjects對什麼有什麼作用?爲什麼UserProjects根本引用UserManager? – 2009-05-06 17:15:57