我很好奇生成查询集样式查找列表,这就是我想出的。有一个更好的方法吗?
["%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 文件中的作用。