我有一个内容,我想根据多个标准评分 想象一下这种模式:
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表单来发布评级?
我为什么要这样做?
答案 0 :(得分:1)
我会使用model formset来解决这类问题,尽管您不打算使用my_formset.is_valid()
或my_formset.save()
但是因为它可以简化视图中的表单构造和模板。
无需担心表单前缀等。
Ajax
对onclick
事件的ContRate
来电(通过点击星标而触发)应使用pk
rate
(如果有)和{调用{ {1}}作为参数。
该视图将使用ContRateForm
验证和数据库插入/更新的常用机制实现modelformset_factory
(与之前的ModelForm
中使用的相同),并最终呈现json
回复。