1

私のフォームの1つに次のものがあります。

def is_unique(self,item):
    ln = self.cleaned_data['letter_name']
    # checking for duplicate letter names
    if (Letter.objects.filter(item=item,letter_name=ln)):
        return False
    else:
        return True

現在のように名前をチェックする関数を作成する方法はありますmake_unique()が、存在する例がある場合は、の末尾に(= 、、、)のタグを付けletter_nameます。_n_n_01_02_03letter_name

4

1 に答える 1

1

この関数は、is_unique 関数から呼び出すと機能するはずです。それが呼び出されると、少なくとも 1 つの letter_name があることが既にわかっています。次に、tagname で始まるタグを持ち、startswith でフィルタリングして作成された letter_name の数を確認します(これは、変更されていない letter_heads にない_場合にのみ機能すると思います)。_

def make_unique(self, item, ln):
    ln_count = Letter.objects.filter(item=item, letter__startswith=ln+'_').count() + 1
    unique_ln = "{ln}_{count}".format(ln = ln, count = ln_count)
    return unique_ln

大文字と小文字を区別しない場合は、isstartswith を使用します。

于 2012-06-16T22:05:14.213 に答える