2011-10-06 12 views
0

我有這2種型號:Django的 - 阿賈克斯隱藏的雛型

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

這就是我開始做的事情,但我不確定這種技術的可重用性和可維護性。這是一個好習慣嗎? –

+0

還有什麼替代方案?你在這裏定義不需要表單(呈現字段,錯誤,help_text,這裏不需要)。所以你只需要發送數據來查看。我只是建議使用ajax的東西,我的選擇是[dajax](http://www.dajaxproject.com/)。 – DrTyrsa