Python django 1.7按相关字段排序错误
我对Django相当陌生。按相关模型字段排序查询集时出现问题。 我已经在stackoverflow上看到过类似的问题,但是我被这个愚蠢的错误所困扰 我想从“Squadre”模型的“nome”字段订购“MktIn”中的所有记录 这种关系是一(平方)对许多(平方)的关系。 在Django文档之后,我使用了双下划线符号“squadre_uuunome”,但我得到了以下错误: p、 除订单条款外,其他条款均适用 你能帮帮我吗Python django 1.7按相关字段排序错误,python,django,django-queryset,Python,Django,Django Queryset,我对Django相当陌生。按相关模型字段排序查询集时出现问题。 我已经在stackoverflow上看到过类似的问题,但是我被这个愚蠢的错误所困扰 我想从“Squadre”模型的“nome”字段订购“MktIn”中的所有记录 这种关系是一(平方)对许多(平方)的关系。 在Django文档之后,我使用了双下划线符号“squadre_uuunome”,但我得到了以下错误: p、 除订单条款外,其他条款均适用 你能帮帮我吗 >>> tutteIn = MktIn.objects.al
>>> tutteIn = MktIn.objects.all().order_by('squadre__nome', 'ruolo', '-ingaggio')
>>> print (tutteIn.query)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/query.py", line 196, in __str__
sql, params = self.sql_with_params()
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/query.py", line 204, in sql_with_params
return self.get_compiler(DEFAULT_DB_ALIAS).as_sql()
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 101, in as_sql
ordering, o_params, ordering_group_by = self.get_ordering()
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 429, in get_ordering
self.query.get_meta(), default_order=asc):
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 465, in find_ordering_name
field, targets, alias, joins, path, opts = self._setup_joins(pieces, opts, alias)
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 498, in _setup_joins
pieces, opts, alias)
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/query.py", line 1419, in setup_joins
names, opts, allow_many, fail_on_missing=True)
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/query.py", line 1383, in names_to_path
self.raise_field_error(opts, name)
File "/home/bestfoot/.virtualenvs/django17/lib/python3.4/site-packages/django/db/models/sql/query.py", line 1389, in raise_field_error
"Choices are: %s" % (name, ", ".join(available)))
django.core.exceptions.FieldError: Cannot resolve keyword 'squadre' into field. Choices are: author, author_id, caratteristica_1, caratteristica_2,
con_esperienza, created_date, extra_info_1, extra_info_2, id, id_squadra, id_squadra_id, incroci, ingaggio, mod_date, note, parametro_zero, piede, r
anking_in, ruolo, scadenza, sospesa, tipo_in, valore
在views.py中:
from .models import Squadre, MktIn, MktOut, Incroci
def lista_in(request):
tutteIn = MktIn.objects.all().order_by('squadre__nome', 'ruolo', '-ingaggio')
return render(request, 'market/lista_in.html', {'tutteIn':tutteIn, 'full_path': request.get_full_path()})
你应该用
tutteIn = MktIn.objects.all().order_by('id_squadra__nome', 'ruolo', '-ingaggio')
这是您的字段名,而不是模型名。您应该使用
tutteIn = MktIn.objects.all().order_by('id_squadra__nome', 'ruolo', '-ingaggio')
这是你的字段名,不是模型名。试试
。order\u by('id\u squadra\u\u nome…
谢谢itzmeontv,它可以工作!!!我确信必须使用relatedmodel\u\u-fied语法,但我试错了。order\u by('id_squadra___________________________________________________________________________