You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django用related_name查询报Cannot resolve keyword 'vuelos'错误如何解决?

问题根因

你混淆了Django ORM中related_name的作用对象:related_name是定义给被关联的模型使用的反向查询名称,不是当前定义字段的模型的属性。

你在Pasajero模型的persona外键字段上设置了related_name="vuelos",这意味着vuelos是Persona模型的反向查询属性(可以用某Persona实例.vuelos.all()查询该人关联的所有乘客记录),而非Pasajero模型自身的字段。

Pasajero和Vuelo关联的多对多字段实际名为vuelo,所以你直接用vuelos做查询条件自然会提示字段不存在。

修正方案

需要修改两处错误代码:

  1. 修改vuelos视图中的查询语句:
    将原代码
non_pasajeros=Pasajero.objects.exclude(vuelos=vuelo).all()

替换为

non_pasajeros=Pasajero.objects.exclude(vuelo=vuelo).all()
  1. 修改reserva视图中的关联添加语句:
    将原代码
pasajero.vuelos.add(vuelo)

替换为

pasajero.vuelo.add(vuelo)

另外你现有代码中reserva视图的重定向语句也存在参数格式错误,单个参数需要封装为元组,否则会触发参数数量异常,建议同步修改:
将原代码

return HttpResponseRedirect(reverse("vuelo", args=vuelo.id))

替换为

return HttpResponseRedirect(reverse("vuelo", args=(vuelo.id,)))

内容的提问来源于stack exchange,提问作者Beto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 19:27:04