如何在django rest中添加默认图片?
问题描述:
我有我传递first_name
和last_name
后时相同如何在django rest中添加默认图片?
class Profile(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30,blank=True)
dp = models.ImageField(upload_to = '/media/images/dp/',blank=True)
用户配置文件的模型。我有一个物理存储在/media/images/dp/default.jpg
的图像。如何在创建过程中将此图像设置为每个配置文件的默认值?
在此先感谢。
答
您可以在模型上指定的默认图像,像这样:
class Profile(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30,blank=True)
dp = models.ImageField(upload_to = '/media/images/dp/',blank=True, default= '/media/images/dp/default.jpg', null=True, blank=True)
所以,当你创建模型,如果你不发送DP形象,Django会使用默认值。
答
我个人喜欢保持我的模型字段尽可能“精益”,并将它们“增加”到属性上以进行简单的更改,而无需更改数据库表。
这样说的话,我会建议在你的模型上创建一个属性来检查用户上传的个人头像,否则显示默认的头像。另外,我会让您的上传位置成为同样轻松修改的功能。
def upload_location(filename):
return "media/images/dp/{}".format(filename)
class Profile(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30,blank=True)
dp = models.ImageField(upload_to=upload_location', null=True, blank=True)
@property
def default_picture(self):
if self.dp:
return "{}{}".format(settings.MEDIA_URL, self.dp)
return '/media/images/dp/default.jpg'
谢谢,它的工作。 –