2011-12-15 84 views
1

我有一个内容我想按多个条件评分。
想象这样一种模式:Django - 对多个条件的评分:模型Formset?

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表单来发布评级?
任何我为什么要这样做?

+0

是`ContRate.crit`到`Criteria`的外键吗?什么是`DubCrit`? – Stan 2011-12-15 17:53:25

回答

1

我会使用model formset这类问题,虽然您不打算使用my_formset.is_valid()也不使用my_formset.save(),但因为它缓解了视图中的窗体构造和模板中的渲染。 无需与表单前缀等担心

Ajax呼叫的onclick事件(通过在星点击射击)应该调用视图与ContRatepk(如果存在的话)和rate作为参数。

该视图将实例化一个ContRateForm蒙山那些参数(在以前modelformset_factory使用相同),使用ModelForm验证和数据库插入/更新的通常机制和最后呈现json响应。