#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. Можете ли вы поделиться кодом, который выдает эту ошибку?