Django - 多标准评级:模型Formset?

时间:2011-12-15 13:29:26

标签: python django rating django-forms

我有一个内容,我想根据多个标准评分 想象一下这种模式:

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()

用户有一个显示内容的页面 在此页面中,他还可以评估标准集

上的内容

Rating Criterias

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

1 个答案:

答案 0 :(得分:1)

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

Ajaxonclick事件的ContRate来电(通过点击星标而触发)应使用pk rate(如果有)和{调用{ {1}}作为参数。

该视图将使用ContRateForm验证和数据库插入/更新的常用机制实现modelformset_factory(与之前的ModelForm中使用的相同),并最终呈现json回复。