クエリセット スタイルのルックアップのリストを生成することに興味がありましたが、これが思いつきました。これを行うより良い方法はありますか?
["%s__%s" % (f.name, b.name) \
for f in Foo._meta._fields() \
if isinstance(f, django.db.models.fields.related.ForeignKey)\
for b in f.related.parent_model._meta._fields()]
実際には、私はこのようなことをします、
fields = ["%s__%s" % (f.name, b.name) \
for f in Foo._meta._fields() \
if isinstance(f, django.db.models.fields.related.ForeignKey)\
for b in f.related.parent_model._meta._fields()]
return Foo.values_list(*fields)
これにより、データベースの正規化されていないコレクションが返されます。もっと良い方法がなければならないと考えています。_meta
and属性を使用しない_fields
もの。または単にこれを行うQuerySetオブジェクトの一部です。私はそれを見つけることができませんでした。
django-compositionは見つかりましたが、README ファイルだけでは何をするのかわかりません。