Примерно так:
if self.__class__ == "User": logging.debug("%s non_pks were found" % (str(len(non_pks))) ) In [2]: user = User.objects.get(pk=1) In [3]: user.__class__ Out[3]: <class 'django.contrib.auth.models.User'> In [4]: if user.__class__ == 'django.contrib.auth.models.User': print "yes" ...: In [5]: user.__class__ == 'django.contrib.auth.models.User' Out[5]: False In [6]: user.__class__ == 'User' Out[6]: False In [7]: user.__class__ == "<class 'django.contrib.auth.models.User'>" Out[7]: False
Классы - это объекты первого класса в Python:
>>> class Foo(object): ... pass ... >>> a = Foo() >>> a.__class__ == Foo True
Примечание: это не строки, а объекты. Не сравнивайте с "Foo", но с Foo
"Foo"
Foo
Это должно работать:
if user.__class__.__name__ == 'User':