私は次のクエリセットから値のリストを取得し、値
s_v = SiverifyVerificationSite.objects.filter(pattern_id=int(p_id), if_target=bundle.obj.pattern.if_target).values_list('create_status', flat=True)
print 'svid', s_v
は、このクエリセットは何回も実行され、それが値のリストを返します。例えばのために、クエリセットの実行の単一機会に上記のprint文のためのO/Pは、リスト内の値の
svid [1L, 1L],
svid [6L, 8L],
svid [1L, 6L, 1L, 1L],
svid [1L, 6L, 1L]
範囲は0Lから8Lになり、です。今私がリストに入れた値の優先順位をつける必要があります。 私の場合、最優先事項は8Lです。ですから、リストに8Lがあれば、私は操作を実行する必要があります。 2番目の優先順位は6Lです。 8Lと6Lの両方が同じリストに存在する場合、優先順位は8Lです。これを行う最善の方法は何ですか。ループ文を試しましたが、これは複雑な並べ替えのようです。
試みコード:
def dehydrate_orc_display(self, bundle):
final_data = {}
p_id = ''.join(x for x in bundle.obj.pdb_pid if x.isdigit())
# print 'vioid', bundle.obj.pdb_id
s_verify = SiverifyVerificationSite.objects.filter(pdb_id=bundle.obj.pdb_id, pattern_id=int(p_id), if_target=bundle.obj.pattern.if_target)
s_v = SiverifyVerificationSite.objects.filter(pattern_id=int(p_id), if_target=bundle.obj.pattern.if_target).values_list('create_status', flat=True)
print 'svid', s_v
print 'fields', s_verify
if 8L in s_v:
final_data['create_status'] = 8
if 6L in s_v:
final_data['create_status'] = 6
if 8L and 6L in s_v:
final_data['create_status'] = 8
return final_data
これまでに試したことをお見せください! –
は試したコードで編集されました。これは複数の条件を満たすものではありません。 –