我正在学习使用ContentType framework并需要一些帮助来为get_object_for_this_type()
提出例外。
为给定的关键字参数返回此类型的对象。 基本上,这是围绕此object_type的get_object()模型的代理 方法。如果抛出ObjectNotExist异常,将不会被捕获, 所以调用此方法的代码应该捕获它。
我想知道是否有办法在不引入被引用的实际模型的情况下执行此操作。例如,如果我想做这样的事情:
for model in models
try:
i = ContentType.objects.get(app_label="Users", model=model)
obj = i.get_object_for_this_type(user=self)
self.profile_type = obj
self.save()
except ContentType.object.DoesNotExist:
continue
此异常通知我'ContentTypeManager' object has no attribute 'DoesNotExist'
。有没有办法在不指定模型中的所有模型的情况下执行此操作?
答案 0 :(得分:0)
在文档的其他部分找到这个,不要问我在哪里。在这种情况下使用的正确例外是django.core.excpetions.ObjectDoesnotExist
from django.core.exceptions import ObjectDoesNotExist
for model in models:
try:
i = ContentType.objects.get(app_label="Users", model=model)
obj = i.get_object_for_this_type(user=self)
self.slug = obj.slug
self.save()
return self.profile_type
except ObjectDoesNotExist:
continue