假设有一行代码可以使用包含非常长的“查找名称”的django ORM执行查询:
QuerySet.filter(myfk__child__onetoone__another__manytomany__relation__monster__relationship__mycustomlookup=':P')
我想打破这条线跟随pep8,特别是79 characters limit
我知道我们可以做如下的事情:
QuerySet.filter(
**{
'myfk__child__onetoone__another'
'__manytomany__relation__monster'
'__relationship__mycustomlookup': ':P'
}
)
但我想知道是否还有其他的,也许更多的蟒蛇/接受的方式?
最佳答案
也许使用LOOKUP_SEP
来加入查找名称会更容易一些?
from django.db.models.constants import LOOKUP_SEP
lookup = LOOKUP_SEP.join(['myfk', 'child', 'onetoone', 'another', 'manytomany',
'relation', 'monster', 'relationship',
'mycustomlookup'])
QuerySet.filter(**{lookup:':P'})