在 Django 中为随机单词赋值
Posted
技术标签:
【中文标题】在 Django 中为随机单词赋值【英文标题】:Assigning value to a random word in Django 【发布时间】:2012-09-19 12:41:58 【问题描述】:我需要一点帮助来做这件事。我创建了一个随机生成问题的民意调查,说“你喜欢‘蓝色’吗?”用户将从 1-5 对其进行评分。将出现一个新问题,例如“你觉得‘绿色’怎么样?” 单词是从数组中随机抽取的。
如何开始编写视图/模型来存储用户为每个单词选择的值? 输出应该是这样的(分数会为每种颜色取平均值):
Blue 3.4
Green 4.1
Red 2.8
【问题讨论】:
【参考方案1】:您可以创建一个模型来存储您的颜色:
class Color(models.Model):
name = CharField(...)
并将您的颜色存储在那里。
要使其可评分,只需使用 Django 的出色评分插件之一,例如 django-ratings。当然你也可以创建自己的评分应用,但我认为互联网上已经有很多这样的应用了,为什么不使用一个呢?
第
【讨论】:
【参考方案2】:本质上,您应该将颜色放在隐藏字段中或将其存储在会话中(参见https://docs.djangoproject.com/en/dev/topics/http/sessions/)
为了获得平均值,您的模型必须存储所有投票或存储当前平均值 + 到目前为止的投票数,以便您可以计算新的平均值
new_avg = ((old_avg * votes) + new_vote) / (votes++))
有关处理 POST 请求,请参阅https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.POST
【讨论】:
以上是关于在 Django 中为随机单词赋值的主要内容,如果未能解决你的问题,请参考以下文章
Django:如何在管理视图中为 readonly_field 设置默认随机值?