小编Kas*_* B.的帖子

Django:存储用户偏好

我对 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)

这是要走的路还是有更好的方法?此外,制作显示所有可用首选项和复选框的表单的最佳方法是什么,但将初始值设置为检查用户已经标记的那些首选项?

python django django-forms

6
推荐指数
1
解决办法
2581
查看次数

Django项目中不同测量系统的概念

我想在我的Django项目中实现不同的测量系统,以便用户可以选择他们想要使用公制或英制单位.但是,我不知道这样做的正确方法是什么.

目前我的模型没有测量单位感知字段(它们是整数/十进制字段),我希望我不必直接更改字段.

由于我当前的数据库值已经表示度量值,我计划保持这种方式,这意味着我将不得不处理用户输入/值输出转换.Pint似乎是一个很好的图书馆.

如果没有在应用程序中编辑字段,但是使用注册模式或其他内容,这是否可行?我想要实现的是这样的:

  1. 我定义了一个包含不同测量类型和可能值的数据结构,例如长度:米,英尺; 重量:公斤,磅等
  2. 我在每个app目录中添加一个新文件"measurements.py"或类似的东西,其中包含保存测量值的字段.在这个字段中,我可以定义哪些是精确的测量字段以及它们的类型,例如fields = {mymodelfield:length,myothermodelfield:weight}等.
  3. 可以在设置文件中设置一些默认设置并在app文件中覆盖,例如每个测量的默认单位(存储在数据库中的单位).
  4. 用户为每种测量类型设置他的偏好.每个测量类型都有默认单位,如前一点所述.在偏好/默认(存储)单元不匹配的情况下转换用户输入的逻辑是必需的.绑定表单还应该能够将字段值从默认值转换回用户首选单位.

这种解决方案可以更容易地将其插入现有应用程序,因为在应用程序中不会直接更改任何字段和表单.使用注册模式的基本示例会很有帮助.

欢迎提供任何相关信息,包括在非Django项目中如何完成此操作的一般概念和模式.

python django units-of-measurement unit-conversion

6
推荐指数
1
解决办法
1074
查看次数