Django - Ajax隐藏的模型表单

时间:2011-10-06 09:31:22

标签: jquery ajax django django-forms

我有这两个型号:

class Exercise(models.Model):
  text = models.TextField()

class Score(models.Model):
  user = models.ForeignKey(User)
  exercise = models.ForeignKey(Exercise)
  score = models.IntegerField()
  class Meta:
    unique_together = (('user', 'exercise',),)

模板会显示用户可以完成的练习用户在结尾处获得得分

我想用ajax将分数发送到数据库。

我准备了一个获得分数的视图

def scoresexo(request):
  if request.method == 'POST':
    ret = {'type': 'info'}
    score, created = Score.objects.get_or_create(
      user = request.user
    , exercise_id = request.POST['exo']
    )
    score.score = request.POST['score']
    try:
      score.save()
    except:
      ret['type'] = 'error'
      ret['msg'] = 'error saving'
    return HttpResponse(json.dumps(ret), mimetype='application/json')

我应该使用隐藏的ModelForm还是手动的表单/视图?

它会是什么样的?

1 个答案:

答案 0 :(得分:1)

为什么你需要表格?将获得/发布请求与分数和练习发送到某个视图并将结果保存在那里。

不要忘记任何人都可以使用任何数据提出请求,因此您需要考虑一些验证。