1
select_related
とOneToOne関係を逆転して、私は、クエリの下に実行したい:Djangoは、私がモデルの下に持って
raise IndexError("Number of args exceeds number of fields") IndexError: Number of args exceeds number of fields
:私は次のエラーを取得するよう、それはnext_post
パラメータでは動作しませんいくつかの理由について
Post.objects.select_related(
'previous_post', 'next_post'
).get(id=some_id)
# models.py
class Post(models.Model):
title = models.CharField(max_length=60, unique=True)
description = models.TextField()
content = models.TextField()
previous_post = models.OneToOneField('self', null=True, blank=True,
related_name='next_post',
on_delete=models.PROTECT)
理論的に私はselect_related
なしで暮らすことができますが、私はこのケースでそれをあきらめたくないと思っています。私は何か間違っているのか、それともちょうどDjangoのバグでしょうか?
完全トレースバック:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/konrad/PycharmProjects/jdg/env/lib/python3.4/site-packages/django/db/models/query.py", line 381, in get
num = len(clone)
File "/home/konrad/PycharmProjects/jdg/env/lib/python3.4/site-packages/django/db/models/query.py", line 240, in __len__
self._fetch_all()
File "/home/konrad/PycharmProjects/jdg/env/lib/python3.4/site-packages/django/db/models/query.py", line 1074, in _fetch_all
self._result_cache = list(self.iterator())
File "/home/konrad/PycharmProjects/jdg/env/lib/python3.4/site-packages/django/db/models/query.py", line 72, in __iter__
rel_populator.populate(row, obj)
File "/home/konrad/PycharmProjects/jdg/env/lib/python3.4/site-packages/django/db/models/query.py", line 1715, in populate
obj = self.model_cls.from_db(self.db, self.init_list, obj_data)
File "/home/konrad/PycharmProjects/jdg/env/lib/python3.4/site-packages/django/db/models/base.py", line 460, in from_db
new = cls(*values)
File "/home/konrad/PycharmProjects/jdg/env/lib/python3.4/site-packages/django/db/models/base.py", line 372, in __init__
raise IndexError("Number of args exceeds number of fields")
IndexError: Number of args exceeds number of fields
完全なトレースバックを表示できますか? – Alasdair
'env/lib/python3.4/site-packages/django/db/models/base.py in __init__ in line 372' – klis87
上記は最後の行で、ポストでは完全なトレースバックにアクセスできます – klis87