AlueError: Cannot assign value-field-must-be-a-object-instance
Я получаю следующую ошибку
ValueError: Cannot assign "(<UserProfile: testUser>, True)": "Comments.profileInfo" must be a "UserProfile" instance.
Что я делаю - это модульное тестирование :
def create_user_profile(user):
profile = UserProfile.objects.update_or_create(gender = 'F',
defaults={
'user': user})
return profile
def create_comment(profile, cat):
comment, __ = Comments.objects.update_or_create(
defaults= {'profileInfo' : profile,
'category' : cat}
)
return comment
class CommentsFeature(TestCase):
def setUp(self):
self.user = create_user("testUser", "testPassword")
login = self.client.login(username='testUser', password='testPassword')
self.profile = create_user_profile(self.user)
self.comment = create_comment(self.profile, self.cat)
Код модели:
class Comments(models.Model):
profileInfo = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
class UserProfile(models.Model):
GENDER_CHOICES = (
('F', 'Female'),
('M', 'Male'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
dob = models.DateField(blank=True, null=True)
facebook = models.BooleanField(default = False)
# This line is required. Links UserProfile to a User model instance.
user = models.OneToOneField(User, on_delete=models.CASCADE)
website = models.URLField(default = "", blank = True)
picture = models.ImageField(upload_to='profile_images', default="", blank = True)
def __str__(self):
return self.user.username
Ошибка возникает только в функции настройки. Мои тестовые примеры возвращают эту ошибку
Traceback (последний последний вызов): File "C:\Users\nikhi\Workspace_backup\Rango_Project\rango\tests.py", line 187, in setUp self.comment = create_comment(self.profile, self.cat) Файл "C:\Users\nikhi\Workspace_backup\Rango_Project\rango\tests.py", строка 53, в create_comment 'category' : cat}
Возвращается кортеж:
profile, _ = UserProfile.objects.update_or_create(gender = 'F',
defaults={
'user': user})
profile
- ваш пользователь, _
- булево, если он был создан или обновлен.