使用简化模型:
class Notification(models.Model):
content_type = models.ForeignKey(ContentType, null=True)
object_id = models.PositiveIntegerField(null= True)
content_object = generic.GenericForeignKey('content_type', 'object_id')
class Person(models.Model):
name = models.CharField(max_length=50)
如何检查Notification
的content_object是否属于Person
类?
if notification.content_type:
if notification.content_type.name == 'person':
print "content_type is of Person class"
这有效,但它感觉不对,也不是pythonic。还有更好的方法吗?
答案 0 :(得分:1)
您可以使用isinstance(object, Class)
来测试object
是Class
的实例。
所以,在你的例子中试试这个:
if notification.content_type:
if isinstance(notification.content_type, Person):
print "content_type is of Person class"
答案 1 :(得分:0)
很简单,你可以试试
Person.__name__