我在 django 中有模型,我想使用此帐户模型中的用户名值来寻址 ImageField 我怎样才能做到这一点?
class Account(models.Model):
nickname = models.CharField(max_length=150)
username = models.CharField(max_length=70)
password = models.CharField(max_length=70)
email = models.EmailField(max_length=70)
avatar = models.ImageField(upload_to = f'userdata/{username}/avatar/' ,default= MEDIA_ROOT + 'default/img/avatar.png')
使用可调用:
class Account(models.Model):
nickname = models.CharField(max_length=150)
username = models.CharField(max_length=70)
password = models.CharField(max_length=70)
email = models.EmailField(max_length=70)
def avatar_path(self, filename):
return f'userdata/{self.username}/avatar/{filename}'
avatar = models.ImageField(
upload_to=avatar_path, default=MEDIA_ROOT + 'default/img/avatar.png'
)
使用 upload_to 作为可调用的,例如函数。 作为参考,请检查此gfg页面
def user_directory_path(instance, filename):
return f'userdata/{instance.username}/avatar/{filename}'
class Account(models.Model):
nickname = models.CharField(max_length=150)
username = models.CharField(max_length=70)
password = models.CharField(max_length=70)
email = models.EmailField(max_length=70)
avatar = models.ImageField(upload_to=user_directory_path, default=MEDIA_ROOT + 'default/img/avatar.png')