Kas*_* B. 6 python django django-forms
我对 Django 还是很陌生,并试图找出解决以下问题的最佳方法。
我想将用户个人偏好(用户喜欢或不喜欢的东西)存储为简单的布尔值 - true 或 false。问题是偏好不是固定的,可以通过管理界面添加新的偏好。
这就是我的想法。
喜好:
class Preferences(models.Model):
title = models.CharField(max_length=100)
...
Run Code Online (Sandbox Code Playgroud)
价值观:
class PreferencesValues(models.Model):
user = models.ForeignKey(User)
preference = models.ForeignKey(Preferences)
value = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
这是要走的路还是有更好的方法?此外,制作显示所有可用首选项和复选框的表单的最佳方法是什么,但将初始值设置为检查用户已经标记的那些首选项?
如果您所有的偏好值都是布尔值,那么是的,这种方式是可以接受的。如果你想PreferencesValues使用 Django Forms 来处理,你应该看看Django Formsets。
但如果您想做一些支持 ajax 的东西,您还应该看看这篇 Django Snippets 文章。