Я пытаюсь решить проблему ValueError: Cannot query "X": Must be "Y" instance.
.Проблема в том, что мой X
определенно выглядит как Y
экземпляр.В моем случае X
- это self
в модели UserAccount
.Вот некоторые фрагменты кода:
from other.thing import do_something
class UserAccount(...): # eventually subclasses from Django's user model
@property
def is_weekly_email_enabled(self):
# import pdb; pdb.set_trace() # Debugging entrypoint
return do_something(self)
class UserPreference(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL) # This points to UserAccount
name = models.CharField(max_length=255)
# In other/thing.py :
def do_something(user):
return UserPreference.objects.get(user=user, name="some_preference")
Я установил pdb
точку останова в is_weekly_email_enabled()
для подтверждения.Фактическое исключение с результатами тестирования:
ValueError: Cannot query "user1": Must be "UserAccount" instance.
(Pdb) self
<UserAccount: user1>
(Pdb) type(self)
<class 'accounts.models.UserAccount'>
(Pdb) isinstance(self, UserAccount)
True
Что здесь происходит?