Модель системы имеет модель . Модель партии.Как построить значение поля в модели, полученное из значений в другой модели.
class Party(models.Model):
name = models.CharField(max_length=128)
our_reference = models.CharField(max_length=128)
Peter является стороной, а другой человек с тем же именем также называют Петром. Поле «our_reference» должно использовать первые три символа, за которым следует int, как PET1. Второй Петр будет PET2. Добавляется третий человек, называемый Петрас. Он будет PET3.
Использование модуля Левенштейна (https://rawgit.com/ztane/python-Levenshtein/master/docs/Levenshtein.html), мы должны проверить, при вставке партии, существует ли уже эта партия, как -
def get_similar_items(mod, field, string, similarity_ratio=0.6, limit=None): """ Get similar items for a specific model Example usage: similar = get_similar_items(Entry, 'title', 'Espresso is good for you', 0.5, 10) var = Entry.objects.filter(id__in=similar) """ similar_list_id = [] v = ContentType.objects.get_for_model(mod) c = v.model_class() for i in c.objects.all(): if ratio(string, getattr(i,field)) > similarity_ratio: similar_list_id.append(i.id) return similar_list_id[:limit]
видели на https://djangosnippets.org/snippets/288/
Если партия существует, дон» t используйте новый номер int, но используйте старый, то есть PET1 в качестве ссылки. Если сторона не существует, сделайте новую ссылку PET4.
Вопрос был изменен, чтобы сделать очиститель для использования. Как реализовать?
В конце концов решили пойти с простым решением - используйте UUID, как предложено knelson, и обычную последовательность postgres. 'code' – INTINV