クエリセットから3つのオブジェクトを削除したいのですが。これは追加のリストの助けを借りて機能しますが、QuerySetAPIを使用してこれを行うためのより良い方法があるはずです。しかし、私はまだどのように理解していませんでした:
私がしていること:
ranks = Rank.objects.all()
remove_ranks = ['Field Marshall', 'Military Attache', 'Mercenary Recruiter']
new_ranks =[]
for rank in ranks:
if not rank.name in remove_ranks:
new_ranks.append(rank)
Django APIを使用してこれを行うにはどうすればよいですか?
試してみてください
remove_ranks = ['Field Marshall', 'Military Attache', 'Mercenary Recruiter']
Rank.objects.exclude(name__in=remove_ranks)
それは何をするためのものか?
.exclude
の反対です .filter
name__in
SQLのINステートメントに相当します
これにより、SQLクエリが生成されます。
Select * from rank where name not in ('Field Marshall', 'Military Attache', 'Mercenary Recruiter')
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加