提问人:Gio 提问时间:3/9/2023 更新时间:10/26/2023 访问量:68
Django Rest 框架针对不同帐户层的不同映像大小 3 内置和制作新
Django Rest Framework different image size for different account tiers 3 build in and possibility to make new
问:
#a link to a thumbnail that's 200px in height - Basic
#a link to a thumbnail that's 400px in height - Basic and Intermediate
#a link to the originally uploaded image - Basic, Intermediate and Premium
class Profile(models.Model):
MEMBERSHIP = (
('BASIC', 'Basic'),
('PREMIUM', 'Premium'),
('ENTERPRISE', 'Enterprise')
)
user = models.OneToOneField(User, on_delete=models.CASCADE)
membership = models.CharField(max_length=10, choices=MEMBERSHIP, default='BASIC')
def __str__(self):
return f'{self.user.username} {self.membership} Profile'
我知道如何进行 3 层构建的唯一方法如上所述。
我不知道如何从管理面板添加具有不同图像大小的更多会员资格。我想将它们作为一个模型,并根据需要添加它以创建新用户。
答:
1赞
Mahmoud Nasser
3/9/2023
#1
您可以创建一个名为 :Membership
class Membership(models.Model):
name = models.CharField(max_length=10, default='BASIC')
thumbnail_max_width = models.IntgerField()
thumbnail_max_height = models.IntgerField()
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
membership = models.ForigenKey(Membership)
def __str__(self):
return f'{self.user.username} {self.membership} Profile'
现在,您可以从管理面板创建所需的所有成员资格类型
1赞
Iqbal Hussain
3/9/2023
#2
实际上,为了允许用户为不同的付费级别使用不同的图像尺寸,您可以为基本和高级添加两种图像尺寸。
class Profile(models.Model):
MEMBERSHIP = (
('BASIC', 'Basic'),
('PREMIUM', 'Premium'),
('ENTERPRISE', 'Enterprise')
)
user = models.OneToOneField(User, on_delete=models.CASCADE)
membership = models.CharField(max_length=10, choices=MEMBERSHIP, default='BASIC')
basic_thumbnail_height = models.PositiveIntegerField(default=200)
premium_thumbnail_height = models.PositiveIntegerField(default=400)
def __str__(self):
return f'{self.user.username} {self.membership} Profile'
def thumbnail_link(self):
if self.membership == 'BASIC':
return f'https://something.com/thumbnail/{self.user.id}/{self.basic_thumbnail_height}'
elif self.membership == 'PREMIUM':
return f'https://something.com/thumbnail/{self.user.id}/{self.premium_thumbnail_height}'
else:
return f'https://something.com/original/{self.user.id}'
评论