python - 在单个 Django 模型字段中存储两种类型的值

标签 python sql django sqlite django-models

我正在通过创建投票应用程序来学习 django。首先,我有三个模型“用户”、“问题”和“选择”。

class User(....):
    ....
    Questions_voted = models.ManyToManyField(Question)
    ....

这意味着用户可以为任意数量的问题投票。接下来是问题模型,它很简单,只存储问题文本和投票的人数。

class Question(models.Model):
    question_text = models.CharField(max_length=500)
    vote_count = models.IntegerField(...)

接下来是 Choices,它有一个 choice_text 并引用它所属的问题。

class Choice(models.Models):
    choice_text = models.CharField(models.Model)
    question = models.ForeignKey(Question,...)

现在我想存储有关用户为问题选择的选项的信息。当你想到它时就很清楚了,但由于缺乏对 django 模型中字段类型的了解,我陷入了困境。

最佳答案

我建议您更改模型架构。这里是建议的模型:

Suggested ER model

我添加了 UserVote 模型,其中包含有关 User 选择的 QuestionChoice 的信息。

from django.conf import settings

class UserVote(models.Model):
    question = models.ForeignKey('Question')
    choice = models.ForeignKey('Choice')
    user = models.ForeignKey(settings.AUTH_USER_MODEL)

编辑:如何阅读建议的模式:User可以有许多UserVote(在Django中存在多对一关系)您只需将 ForeignKey 添加到 UserVote 即可)。每个UserVote 必须有唯一的一个问题选择。剩下的就是你的旧模式。顺便说一句,我使用了鱼尾纹符号( https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Crow.27s_foot_notation )。

关于python - 在单个 Django 模型字段中存储两种类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43572250/

相关文章:

java - 如何选择一张表的数据插入另一张表?

django - iFrame 在 Facebook Canvas 应用程序中显示为空白

python - R 和 sklearn 中的随机森林

python - 将罗马数字转换为十进制数字

sql - 解析具有多个同名元素的 OpenXML

php - 检查mysql数据库中是否存在用户名?

python - cimport 给出 fatal error : 'numpy/arrayobject.h' file not found

python - 获取嵌套列表中最大值的索引

python - 组织 __init__.py 文件时循环导入错误

javascript - 尝试实现特定于 Django 模型属性的“阅读更多”按钮