Как получить имя пользователя в models.py?

#django

#джанго

Вопрос:

models.py

 def upload_to(instance, filename):  nowDate = datetime.now().strftime("%Y/%m/%d")  return '/'.join(['verify', UserVerifyImg.user_idx.username, nowDate, filename])  class UserVerifyImg(models.Model):  user_idx = models.ForeignKey(  User,  db_column='user_idx',  on_delete=models.CASCADE  )  business_type = models.CharField(max_length=255)  image = models.ImageField(upload_to=upload_to)  upload_date = models.DateTimeField(auto_now = True)   class Meta:  managed = False  db_table = 'account_user_verify'  

Я поискал вокруг instance.user.username , но он показал ошибку.

Ошибка атрибута: объект ‘UserVerifyImg’ не имеет атрибута «пользователь»

Это моя ошибка.

Комментарии:

1. user_idx Поле все еще может быть пустым, когда django пытается загрузить файл. Если вы добавите print(instance.user_idx) к началу upload_to , что вы увидите?

Ответ №1:

вы можете сделать что-то подобное, чтобы получить имя пользователя

 instance.user_idx.username  

Ответ №2:

Привет, который вы должны использовать UserVerifyImg.user_idx.username в своих представлениях,
и в upload_to() функции, которую вы должны использовать instance.user_idx.username

Примечание: Я отредактировал свой код после вашего редактирования

Комментарии:

1. Мне это действительно понравилось. но другая ошибка. Ошибка атрибута: объект ‘ForwardManyToOneDescriptor’ не имеет атрибута ‘имя пользователя’

2. Можете ли вы поделиться кодом, который выдает эту ошибку?