我对生成查询集样式查找列表感到好奇,这就是我想到的。有更好的方法吗?
["%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
和_fields
属性的内容。或者仅仅是QuerySet对象的一部分,它将执行此操作。我找不到它。
我确实找到了django-composition,但不确定它仅从README文件中做了什么。