Django:存储用户首选项

时间:2014-02-05 13:40:46

标签: python django django-forms

我仍然是Django的新手,并试图找出解决以下问题的最佳方法。

我想将用户个人偏好(用户喜欢或不喜欢的东西)存储为简单的布尔值 - true或false。问题是偏好不是固定的,可以通过管理界面添加新的偏好。

这就是我的想法。

设定:

class Preferences(models.Model):
    title = models.CharField(max_length=100)
    ...

值:

class PreferencesValues(models.Model):
    user = models.ForeignKey(User)
    preference = models.ForeignKey(Preferences)
    value = models.BooleanField()

这是要走的路还是有更好的方法?此外,制作一个表单以显示所有可用偏好设置的复选框的最佳方法是什么,但设置初始值以检查用户已标记的偏好设置?

1 个答案:

答案 0 :(得分:0)

如果您的所有首选项值都是布尔值,那么这种方式是可以接受的。如果你想用django形式处理PreferencesValues,你必须看一下django formsets

但是如果你想让某些事情变得更加灵活,你也必须看看这个:

https://djangosnippets.org/snippets/1389/