2014-02-12 52 views
0

有人可以幫助我與Django評級應用程序?我試圖發佈評級,但該應用似乎沒有做任何事情。我在這裏想念什麼?真的很難找到的例子在那裏..Django評級 - 404錯誤「無效的模型或app_label」?爲什麼?

我的功能看起來像這樣(的jQuery插件RATY):

$('.raty').raty({ 
    click: function(score, evt) { 
    var vote_url = "/rate/" + $(this).attr('value') + "/" + score + "/" ; 

    $.ajax({ 
     url: vote_url, 
     type: "GET", 
     success: function(){ 
     alert('Vote successful!'); 
     } 
}); 
    } 
}); 

的GET似乎工作,但我可以在我沒有票/分數註冊管理員看到。

在我的網址:

url(r'rate/(?P<object_id>\d+)/(?P<score>\d+)/', AddRatingFromModel(), { 
    'app_label': 'myapp', 
    'model': 'MyModel', 
    'field_name': 'rating', 
}), 

編輯:

我得到一個404錯誤 「無效的模型或app_label」。但我非常肯定,thoose是正確的。

+0

您能顯示AddRatingFromModel嗎? – sneawo

+0

sneawo,這只是一個視圖,是原包裝的一部分。我認爲我不應該改變那裏的東西。但我想我可以發佈它,如果你認爲它有幫助? 我試着去遵循這樣的: https://pypi.python.org/pypi/django-ratings – user3199840

+0

我認爲這是在這裏:https://github.com/dcramer/django-ratings – user3199840

回答

1

此應用程序不需要POST請求。解決這個問題最簡單的方法是設置「GET」方法在Ajax請求

$.ajax({ 
    ... 
    type: 'GET' 
    ... 

爲了避免404需要在小寫寫型號名稱。在django.contrib.contenttypesapp_labelmodel使用小寫。

url(r'rate/(?P<object_id>\d+)/(?P<score>\d+)/', AddRatingFromModel(), { 
... 
    'model': 'mymodel', 
... 
}), 
+0

謝謝!我設法通過了post-csrf標記,並通過更改爲GET(不需要csrf標記?)來通過403禁止。但不是403,我現在返回了404:「模型無效」或「app_label」。「我不明白爲什麼。我對此感到厭倦。你有什麼想法? – user3199840

+0

@ user3199840顯示您的應用程序的models.py。文件夾是否包含'__init __。py',你有沒有將'app'添加到'INSTALLED_APPS'? –

+0

是的「myapp」和「djangoratings」應用程序都列在設置「已安裝的應用程序」中。 「myapp」在其文件夾中有一個__init__.py。他們都出現在管理員。在我的模特中,我有一個名爲「MyModel」的評級欄。我遵循這個:https://pypi.python.org/pypi/django-ratings。我將用我的模型編輯帖子。 – user3199840