我有一个表单,其组成字段是各个父模型的外键,如下所示:
class vehicle(models.Model):
STATUS = [
(OPERATIONAL, ('Operational')),
(GROUNDED, ('Grounded')),
(NA, ('Not Applicable')),
]
reg_no = models.CharField(max_length=100, null=True)
operationalstatus = models.CharField (max_length=100, choices=STATUS, null=True)
Сhild型号:
class managecar(models.Model):
reg_no = models.ForeignKey(vehicle, on_delete=models.CASCADE, null = True)
location = models.CharField(max_length=100, null=True)
forms.py
class manageForm(forms.ModelForm):
class Meta:
model = managecar
fields = '__all__'
我创建了一个如下所示的视图,并将一个URL链接到它,以供前端的 AJAX 调用,如果在表单中选择的车辆是“接地”,则触发一条消息,但它在控制台中返回404,而我希望它返回一条车辆接地的消息,如果我选择了一辆在父模型中列出的车辆。
views.py
def validate_operation_status(request):
grounded = request.GET.get('grounded', None)
data = {
'is_grounded': vehicle.objects.filter(operational_status__iexact='grounded').exists()
}
return JsonResponse(data)
AJAX 方法:
$("#id_registration_no").change(function () {
console.log( $(this).val() );
$.ajax({
url: 'ajax/validate-status/',
data: {
'grounded': id_registration_no
},
dataType: 'json',
success: function (data) {
if (data.is_grounded) {
alert("This vehicle is grounded.");
}
}
});
});
如果有人能指引我正确的方向,或者有人能指出我的失败之处,我将不胜感激。
1条答案
按热度按时间xu3bshqb1#
首先,您的浏览量过滤错误,您没有过滤您正在查看的注册号,我认为它一定是:
** AJAX 代码:(我已经修改了变量名)**
浏览次数.py:
如果它不工作,请尝试检查您是否正在传递一个正确的/您可以传递一个值到您的views.py如果是,那么现在检查您从视图传递到 AJAX 的数据是否也是正确的。