2014-01-07 60 views
1

我試圖發送一些數據給tastypie poc。發送數據給tastypie引發401

我設計我的模型:

class Category(models.Model): 
    name = models.CharField(max_length=30) 
    icon = models.FileField(upload_to="media/img/wish-icons/") 


class Wish(models.Model): 
    content = models.CharField(max_length=140) 
    category = models.ManyToManyField('wishes.Category', blank=True, null=True) 
    lat = models.FloatField('Latitude', blank=True, null=True) 
    lon = models.FloatField('Longitude', blank=True, null=True) 

我相關api.py:

class CategoryResource(ModelResource): 
    class Meta: 
     queryset = Category.objects.all() 
     resource_name = 'category' 
     fields = ['name', 'icon'] 


class WishResource(ModelResource): 
    category = fields.ToManyField(CategoryResource, 'category', full=True) 

    class Meta: 
     queryset = Wish.objects.all() 
     resource_name = 'wish' 
     authorization = Authorization() 
     list_allowed_methods = ['get', 'post'] 

我可以發送GET請求獲得一個列表或者一個細節,但是當我想用jQuery和ajax發送數據,Firebug返回401錯誤。

我的確喜歡here的例子,但是出了點問題,我不知道在哪裏。這不是一個跨域請求,前臺和tastypie必須具有相同的起源。

我的Ajax請求是這樣的:

var data = JSON.stringify({ 
    "content": "This will prbbly be my lst post." 
}); 
$.ajax({ 
    url: 'http://127.0.0.1:8000/api/v1/wish/', 
    type: 'POST', 
    contentType: 'application/json', 
    data: data, 
    dataType: 'json', 
    processData: false 
}); 
+0

你可以嘗試把錯誤處理程序Ajax調用,看看玩發生了什麼。另外您的CategoryResource是可選的嗎?您可以在命令提示符下獲取詳細錯誤日誌。 – Mutant

+0

嘗試刪除authorization = Authorization()行。 –

+0

或者將其添加到categoryResource中。 –

回答

0

一切正常。 我真的不知道怎麼回事,我與認證,授權,申請類型,添加/刪除的東西,最後,這是我的合法app.py

class CategoryResource(ModelResource): 

    class Meta: 
     queryset = Category.objects.all() 
     resource_name = 'category' 
     authorization = Authorization() 


class WishResource(ModelResource): 
    categories = fields.ToManyField('wishes.api.CategoryResource', 'category', null=True, full=True) 

    class Meta: 
     queryset = Wish.objects.all() 
     resource_name = 'wish' 
     authorization = Authorization()