Django - 在DB答案中存储可以是数字还是文本的最佳方法是什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django - 在DB答案中存储可以是数字还是文本的最佳方法是什么?相关的知识,希望对你有一定的参考价值。
我正在做一个学生调查项目。存储问题的模型类似于:
ID Question Type
1 is good teacher? Choice
2 What do you like about Open-answer
the teacher?
然后在choice
类型问题中,学生将选择一个选项(例如:完全同意),这将存储数字代码(例如5)。但在开答题中,学生会写文字。
什么样的领域应该在answers model
存储这些答案?也许是TextField?
答案
如果你想使用相同的列来打开文本,你可以选择文本...所以你可以在用户选择选项时编写固定文本而不是设置1,2,3,4,这样可以使你的数据更具可读性
ANSWER = (
("Yes", "Yes"),
("No", "No"),
("Neutral", "Neutral"),
)
或者再制作2个列...一个用于设置问题类型(选择或文本),另一个用于存储选项(这样可以设置为外键,而不是使用静态值,可以从一个模型加载)
ID Question Type Answer-Text AnswerID
1 is good teacher? Choice null 1
2 What do you like about Open-answer "The way he swag" null
the teacher?
或者将所有内容与String混合......但是你会遇到一些麻烦来获得这个整数id ...当你试图将它作为整数int(“1”)时会抛出一些错误但是会工作但是int(“他跋涉的方式” )会引发错误
另一答案
使用TextField
可能是一个坏主意,因为你将int
与string
类型的物体混合,绝对不推荐。
你可以做的一件事是将其视为两个不同的领域。一个Choicefield
和一个TextField
。这样,当用户想要使用开放式答案时,用户可以选择空值(空字符串''
)。然后,您可以将空字符串计算为以后的任何内容。
以上是关于Django - 在DB答案中存储可以是数字还是文本的最佳方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章