既存のスラッグを検索する必要がある1回限りのデータインポーターを実装しています。ナメクジは配列になっています。OR
配列をクエリに変換するために受け入れられているベストプラクティスの方法は何ですか?
私は次のことを思いつきました。これは機能しますが、これほど単純なことを実現するにはコードが多すぎるように感じます。
# slug might be an array or just a string
# ex:
slug = [ "snakes", "snake-s" ] # in the real world this is generated from directory structure on disk
# build the query
query = MyModel.objects
if hasattr(slug, "__iter__"):
q = Q()
for s in slug:
q = q.__or__(Q(slug=s))
query = query.filter(q)
else:
query = query.filter(slug=slug)