我在django 3应用程序中使用默认的django用户身份验证模型进行身份验证。
我想为用户提供3个可以购买的计划。计划A,计划B,计划C。这3个计划的视图可访问性不同,但有效期均为1年。
扩展用户模型以保持用户付费计划的最佳方法是什么?另外,从购买之日起一年后,我如何“终止”该计划?
from django.db import models
from django.contrib.auth.models import User
class UserSubscription(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
none = 0
planA = 1
planB = 2
planC = 3
Plans = (
(planA, _('Plan A')),
(planB, _('Plan B')),
(planC, _('Plan C')),
)
plan = models.PositiveSmallIntegerField(
choices=Plans,
default=none,
)
start_date = models.DateField(null=True, blank=True)
is_subscribed = models.BooleanField(_('no'), default=False)
提前感谢
我认为,我什至不会碰User
模型。有一个模型可以满足您的所有计划。然后使用另一种模型(成员资格类型),您可以在其中保存用户模型ID以及他们计划使用的所有其他属性(例如start_date等)进行订阅的计划。