【问题标题】:Django - Rating on Multiple Criteria: Model Formset?Django - 多标准评分:模型表单集?
【发布时间】:2011-12-15 13:29:25
【问题描述】:

我想根据多个标准对一个内容进行评分。
想象一下这种模型:

class Content(models.Model):
  name = models.CharField(max_length=50)

class Criteria(models.Model):
  name = models.CharField(max_length=50)
  content = models.ForeignKey(Content)

class ContRate(models.Model):
  user = models.ForeignKey(User, help_text="Who rated ?")
  crit = models.ForeignKey(Criteria)
  rate = models.DecimalField()

用户有一个显示内容的页面。
在此页面上,他还可以根据设置的标准对内容进行评分

问题是:
您是否建议为此使用Model Formset
还是我应该做一个简单的 Ajax 表单来发布评分?
我为什么要这样做?

【问题讨论】:

  • ContRate.critCriteria 的外键吗? DubCrit 是什么?
  • 抱歉是Criteria,我改了

标签: python django rating django-forms


【解决方案1】:

我会使用model formset 来解决这类问题,尽管您不会使用my_formset.is_valid()my_formset.save(),但因为它简化了视图中的表单构造和模板中的渲染。 无需担心表单前缀等。

您对onclick 事件(由单击星号触发)的Ajax 调用应调用以ContRate pk(如果存在)和rate 作为参数的视图。

视图将使用这些参数实例化一个ContRateForm(与您之前的@​​987654330@ 中使用的相同),使用ModelForm 验证和数据库插入/更新的常用机制,最后呈现一个json 响应。

【讨论】:

    猜你喜欢
    • 2012-08-12
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多