Как уже говорилось в ошибке, __str__
должен возвращать строку, а не кортеж.Например, вы можете вернуть:
class User(models.Model):
user_name = models.CharField(max_length=25, null=False, blank=False, default='User')
user_password = models.CharField(max_length=10, null=False, blank=False, default='1234')
def __str__(self):
# danger: might <i>expose</i> the password
return <b>'{}/{}'.format(</b>self.user_name, self.user_password<b>)</b>
Но, как говорится, очень странно добавлять пароль к объекту __str__
, поскольку это будет означать, что если вы отрендеритеUser
, вы выставляете пароль.Таким образом, может быть лучше просто вернуть user_name
:
class User(models.Model):
user_name = models.CharField(max_length=25, null=False, blank=False, default='User')
user_password = models.CharField(max_length=10, null=False, blank=False, default='1234')
def __str__(self):
return <b>self.user_name</b>
Также странно сохранять пароль в необработанном формате.Обычно пароль хэшируется .
Если вы хотите изменить модель пользователя, вы должны наследовать от AbstractUser
[Django-doc] .Для получения дополнительной информации см. Документацию Django по Замена пользовательской модели пользователя .