Jquery 将数据发送到tastypie将引发401

Jquery 将数据发送到tastypie将引发401,jquery,django,tastypie,Jquery,Django,Tastypie,我试图把一些数据发送到一个tastypie poc 我设计了我的模型: 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)

我试图把一些数据发送到一个tastypie poc

我设计了我的模型:

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错误

我确实喜欢这个例子,但有些地方出了问题,我不知道在哪里。这不是跨域请求,front和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
});
一切正常。 我真的不知道怎么做,我玩了身份验证、授权、文件类型、添加/删除东西,最后这是我的有效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()

您可以尝试在ajax调用中放置错误处理程序,看看发生了什么。同时,您的类别资源是可选的吗?您可以在命令提示符下获取详细的错误日志。请尝试删除authorization=authorization()行。或者也将其添加到categoryResource中。@RomainBraun:添加或删除授权没有任何影响。@。类别不是必需的。我试图完全删除所有关于分类的内容,但没有任何改变。我的firebug只返回401 UNAUTHORIZED,我的django控制台给我“[07/Jan/2014 16:19:01]”POST/api/v1/wish/HTTP/1.1“401 0”,即使我设置了tastype\u FULL\u DEBUG=True:(