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 函数调用此函数,它应该可以工作。当它被调用时,我们已经知道至少有一个 letter_name。然后我们检查有多少以标记名开头的标记以及_通过使用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

startswith 区分大小写,如果要使用不区分大小写,请使用 isstartswith。

于 2012-06-16T22:05:14.213 回答