Python 如何在数据库中保存django模型以供用户自定义视图?
假设我有三个模型,在我的视图中,我显示了这些模型的所有项目,我想让我的用户有权设置在第一、第二和第三个视图中显示哪些模型的对象Python 如何在数据库中保存django模型以供用户自定义视图?,python,django,django-models,Python,Django,Django Models,假设我有三个模型,在我的视图中,我显示了这些模型的所有项目,我想让我的用户有权设置在第一、第二和第三个视图中显示哪些模型的对象 实现这一点的最佳方法是什么?Django的最佳实践是将用户配置文件对象定义为: class UserProfile(models.Model): user = models.OneToOneField(User, related_name="profile") # add whatever other configurations & prefe
实现这一点的最佳方法是什么?Django的最佳实践是将用户配置文件对象定义为:
class UserProfile(models.Model):
user = models.OneToOneField(User, related_name="profile")
# add whatever other configurations & preferences you allow the user to set here
feature_x_priority = models.IntegerField(default=0)
feature_y_priority = models.IntegerField(default=1)
feature_z_priority = models.IntegerField(default=2)
然后从代码中的任何一点,您都可以使用user.profile.feature\u x\u priority
不要忘记为每个用户(新用户和现有用户)创建一个配置文件,否则在使用它之前,您必须检查
user.profile
是否存在。不清楚“我的用户”是什么意思
这是否只是为站点全局设置此配置的管理员用户
或者你的意思是网站的每个用户都有自己的偏好
如果是后一种情况,则创建一个名为首选项
的新模型,该模型与用户模型具有一对一
关系
然后在查询中,您应该根据首选项值创建三个单独的查询