小编lac*_*lac的帖子

从AJAX POST开始,QueryDict总是空的

我已经看到了一些问题,但我试图实施他们的解决方案,但它对我没用.

我正在尝试使用POST向Django视图发送基本的AJAX请求.这是我的JQuery:

$('#save-button').click(function() {
    var names = ['BLOGGS Joe', 'SMITH John'];
    data = JSON.stringify(names);
    $.ajax({
        "contentType": "application/json; charset=utf-8",
        "data": data,
        "url" : "/ajax/myteam/save/",
        "type": "POST",
        "success": function(response) {

        }
    });
});
Run Code Online (Sandbox Code Playgroud)

这是我的Django视图:

def myteam_save(request):
   if request.method == 'POST':
       if request.POST:
           print 'Hurray'
       else:
           print 'Boo'
       response = HttpResponse(json.dumps({'code':'ok'}), content_type='application/json')
       return response
Run Code Online (Sandbox Code Playgroud)

当我检查Firebug中发生的事情时,我发现帖子正在按照我的意图制作,但来自request.POST的QueryDict对象始终为空.

我一直小心csrf令牌,我想甚至尝试在我的设置中关闭'django.middleware.csrf.CsrfViewMiddleware',但这似乎没有任何效果.

我究竟做错了什么?

谢谢你的帮助!

django ajax jquery

6
推荐指数
2
解决办法
2821
查看次数

GeoDjango根据与模型字段的距离进行过滤

我的问题与几乎相同。但是它已经很老了,感觉必须是一个比较常见的情况,可能会有更好的解决方案。

我有一个类似的模型:

class Person(models.Model):
    location = models.PointField(srid=4326)
    willing_to_travel = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

如果我想要在某个点的固定距离(例如10英里)内的Person的所有实例p,我可以这样做:

Person.objects.filter(location__distance_lte=(p, D(mi=10)))
Run Code Online (Sandbox Code Playgroud)

但是我想获得在willing_to_travel特定位置距离内的Person的所有实例。

python django geodjango

5
推荐指数
1
解决办法
1422
查看次数

如何让Django Rest Framework中的HyperlinkedModelSerializer适用于foreignkeys?

我是Django Rest Framework的新手,我正在努力使我的序列化能够正常工作以获得两个模型之间的外键关系.我试图减少我的设置尽可能简单,但我仍然无法理解它应该如何工作.我试图使用HyperlinkedModelSerializer(来自文档)'它使用超链接来表示关系'.当我尝试访问测试服务器上{model X}的列表或详细视图的url时,我得到:

'无法使用视图名称"{model Y} -detail"解析超链接关系的URL.您可能未能在API中包含相关模型,或者lookup_field在此字段上错误地配置了该属性.

我究竟做错了什么?

我的模特:

from django.db import models


class Project(models.Model):
    name = models.CharField(max_length=50)
    description = models.TextField()


class ProjectPhoto(models.Model):
    project = models.ForeignKey(
            Project, related_name='photos', on_delete=models.CASCADE
        )
    image = models.ImageField()
    caption = models.CharField(max_length=100)
    date_added = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

我的序列化器

class ProjectSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = Project
        fields = ('name', 'description', 'photos')


class ProjectPhotoSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = ProjectPhoto
        fields = ('image', 'caption', 'date_added', 'project'))
Run Code Online (Sandbox Code Playgroud)

我的观点:

from rest_framework import viewsets

from projects.models import Project, ProjectPhoto
from …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

1
推荐指数
1
解决办法
1671
查看次数

标签 统计

django ×3

ajax ×1

django-rest-framework ×1

geodjango ×1

jquery ×1

python ×1