在我之前开发的每个Django应用程序中,我只使用了一个应用程序,其中包含所有模型、表单等。 对于小型应用程序来说还可以,但现在是时候正确处理了 :)
我想要一个名为“auth”的模块,它将涵盖诸如用户注册、登录、欢迎电子邮件发送等方面。
所以......我创建了一个名为“auth”的应用程序。 在auth.models模块中,我有类似这样的代码:
我想要一个名为“auth”的模块,它将涵盖诸如用户注册、登录、欢迎电子邮件发送等方面。
所以......我创建了一个名为“auth”的应用程序。 在auth.models模块中,我有类似这样的代码:
class BaseModel(models.Model):
uuid = UUIDField()
time_created = models.DateTimeField(auto_now_add=True, null=True)
time_modified = models.DateTimeField(auto_now=True, null=True)
class Meta:
abstract = True
class Team(BaseModel):
title = models.CharField(_('Team title'), max_length=64)
class Member(BaseModel):
user = models.OneToOneField(User)
team = models.ForeignKey(Team)
USER_ROLES = (
('admin',_('Administrator')),
('member',_('Team member')),
)
role = models.CharField(_('User role'), max_length=6, choices=USER_ROLES, default='member')
这里出现了我的第一个问题。我的应用中每个用户都有一个一对一的 Member 对象。Member 对象存储有关用户的一些附加数据。每个单独的用户必须分配到组(我称之为团队)... 但等等... 应该将 团队 类移动到单独的应用程序中来管理团队吗?
另外,我想从 BaseModel 继承所有模型类。我必须在每个应用程序中再次添加相同的BaseModel类吗?这是否违反了“不要重复自己”的规则?
另外,在注册新用户时,我需要为他创建一个新的团队。我应该把代码放在哪里?它既与用户管理又与团队管理相关。
我需要一些指导,如何解决这些设计问题。