Python Django中webapp的设计思想
我正在Django开发一个基于用户的社交网络类型的web应用程序。这是我的第一次,所以我想确保我使用了一些好的实践 目前,web应用程序支持两种用户。这由两个不同的组表示。当我注册一个用户时,我会将他们分配到这两个组中的一个。我也有两个应用程序,每种类型的用户一个。这些应用程序处理特定类型用户所特有的任何事情。我有另一个应用程序处理实际的身份验证。此应用程序使用Django的内置用户类型,并为其分配用户配置文件。这两种不同类型的用户都有自己的配置文件,它们从UserProfile扩展/继承 这工作得相当好,并且是相当可重用的,因为身份验证应用程序可以从url中提取用户类型,并确定要创建的用户类型。由于组的命名很方便,因此也可以将它们添加到正确的组中Python Django中webapp的设计思想,python,django,web-applications,Python,Django,Web Applications,我正在Django开发一个基于用户的社交网络类型的web应用程序。这是我的第一次,所以我想确保我使用了一些好的实践 目前,web应用程序支持两种用户。这由两个不同的组表示。当我注册一个用户时,我会将他们分配到这两个组中的一个。我也有两个应用程序,每种类型的用户一个。这些应用程序处理特定类型用户所特有的任何事情。我有另一个应用程序处理实际的身份验证。此应用程序使用Django的内置用户类型,并为其分配用户配置文件。这两种不同类型的用户都有自己的配置文件,它们从UserProfile扩展/继承 这工
group1 = models.ForeignKey(Group1, blank=True, null=True)
您必须自己进行逻辑检查,以确保只有一个是有效的(您可以在重写的save()方法或其他方法中执行此操作),但要同时获取用户的所有数据,并知道用户所在的组,您可以执行以下操作:
User.objects.filter(username='blahblah').select_related('profile', 'profile__group1', 'profile__group2')
只需对数据库进行一次查询,您就可以获得有关用户的所有信息,并且还可以知道用户所在的组(不是“无”组)
我希望这有帮助
另外,我在这里假设组之间不仅有唯一的数据,而且还有独特的功能。感谢您的见解。这是我刚才遇到的问题。我习惯于java,如果我有继承层次结构,我可以自动获得我想要的子类。我在python中通过向UserProfile添加几个方法克服了这个问题,这些方法允许您检索适当的子类,所以我不担心这一点。我很高兴我在将共性分解成一个单独的应用程序方面是正确的。如果一个用户想要查看另一个用户的配置文件,情况会怎样?有不同类型的用户,那么这应该如何工作呢?您可以从通用应用程序中执行此类视图,然后使用django include template命令根据用户组({%include'group1.html%})呈现组信息,确保从用户的group1和group2的通用视图中传递变量,这样至少有一个是正确的。