Django模型对象AJAX获取不到响应
我尝试在用户单击时获取具有相同外部对象键(省)的模型对象(市)。但我没有得到任何回应,当我添加url时,我得到一个404 no的省份匹配给定的查询 以下是有问题的模型:Django模型对象AJAX获取不到响应,django,ajax,django-models,get,Django,Ajax,Django Models,Get,我尝试在用户单击时获取具有相同外部对象键(省)的模型对象(市)。但我没有得到任何回应,当我添加url时,我得到一个404 no的省份匹配给定的查询 以下是有问题的模型: class Governorate(models.Model): name=models.CharField(max_length=100) def __str__(self): return self.name class Municipality(models.Model): na
class Governorate(models.Model):
name=models.CharField(max_length=100)
def __str__(self):
return self.name
class Municipality(models.Model):
name=models.CharField(max_length=100)
mun_d=models.TextField()
gov=models.ForeignKey(Governorate, on_delete=models.PROTECT)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('forums-home', kwargs={'municipality': self.name})
Django视图
def municipality_by_gov(request):
if request.is_ajax and request.method == 'GET':
gov_name = request.GET.get('gov_name', False)
gov = get_object_or_404(Governorate, name=gov_name)
gov_muns = Municipality.objects.filter(gov=gov)
data = serializers.serialize('json', gov_muns)
return JsonResponse(data, safe=False)
Django URL
path('ajax/MunByGov/', municipality_by_gov, name='MunByGov'),
脚本
$('.GovLink').click(function(){
$('#GovModalLabel').text($(this).data('name'));
var gov_name=$(this).data('name');
$.ajax(
{
type:"GET",
url: "{% url 'MunByGov' %}",
datatype: 'json',
data:{ gov_name: gov_name },
success: function( response )
{
var response = JSON.parse(response)[0];
document.getElementById("text-container").innerHTML = response.fields.name;
},
}) });
问题是:我使用的是jQuery的超薄构建,它删除了一些东西,ajax就是其中之一。解决方案:只需下载jQuery的常规(压缩或非压缩)版本,并将其包含在项目中 也就是说用而不是用
显然这是一个常见的陷阱,我希望这能帮助其他人
{gov\u name:gov\u name}
的密钥错误。在浏览器调试工具的网络选项卡或django runserver控制台中查看浏览器发送的请求。您没有发送查询参数'gov\u name'
Thank You@dirkgroten问题是:我使用的是jQuery的精简版本,它删除了一些内容,ajax就是其中之一。解决方案:只需下载jQuery的常规(压缩或非压缩)版本,并将其包含在您的项目中。这与您在问题中显示的问题无关。如果你不能再现,就关闭你的问题。但是您描述的问题不能是因为ajax不起作用,因为您收到了一个请求。我在将视图链接附加到url栏时收到了请求,但不是作为ajax。我仍然认为这对future很重要,他和我一样,可能会问同样的“错误问题”。也许,但我怀疑这是否有用,因为如果未定义$.ajax,那么执行$.ajax会在控制台中给您带来错误。不过,在您的问题中,数据
是错误的,因此它无法工作,因为您没有发送带有查询参数“gov_name”的请求。最终请求的url应该是/ajax/MunByGov/?gov\u name=something,而现在不是这样(它是/ajax/NumByGov/?something=something)