手紙のさまざまなバージョンを表すオブジェクトがいくつかあります。これらのバージョンの一部は印刷されています(日付がスタンプされています)。手紙(すべてのバージョンを含む)が印刷されている場合は、最後に印刷されたバージョンのタイムデートスタンプ(簡単に実行できます)を取得してから、最後に印刷されたバージョンのバージョン番号を取得する必要があります(現在、コードはC ++ {shiver}のように見えます)。 )。
では、どうすればこれをよりpythonic(よりクリーン)に見せることができますか
try:
# get the lastest letter version that has been printed
lv_temp = LV.objects.filter(letter=letter.id,printed_last__isnull=False).latest('id')
# get the id's of all the letter versions for a particular letter
lv_temp2 = LV.objects.filter(letter=letter.id).order_by('id')
lv_temp4 = []
# get all the letter version for a particular letter
for lv_temp3 in lv_temp2:
lv_temp4.append(lv_temp3.id)
# get an array of the indexes and the pks
for i,v in enumerate(lv_temp4) :
# if the pk of the last printed version is the same one as in the loop...
if lv_temp.id == v :
# ...save the index as the version number
lv_printed_ver = i
lv_printed = lv_temp.printed_last
except ObjectDoesNotExist:
lv_printed = None
lv_printed_ver = None
(lv_temp...
何度も物事をパスしなければならないことに腹を立てていたので使用しました)