【问题标题】:Django - Ajax hidden Model FormDjango - Ajax 隐藏模型表单
【发布时间】:2011-10-06 09:31:21
【问题描述】:

我有这两个模型:

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 还是手动表单/视图?

那会是什么样子?

【问题讨论】:

    标签: jquery ajax django django-forms


    【解决方案1】:

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

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

    【讨论】:

    • 这就是我开始做的事情,但我不确定这种技术的可重用性和可维护性。这是一个好习惯吗?
    • 还有什么选择?您绝对不需要这里的表单(渲染字段、错误、help_text,这里不需要)。所以你只需要发送数据来查看。我只是推荐使用ajax的东西,我的选择是dajax
    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2016-10-10
    • 2014-04-11
    • 2011-01-26
    • 2011-06-08
    • 1970-01-01
    相关资源
    最近更新 更多