Как производить IDs с форматом в Джанго?

Я хотел бы знать, поскольку я могу производить ключ autoincrementable, например у меня есть этот формуляр.

Datos Empresa

Нет. У предприятия есть формат 000001 и я нуждаюсь в том, что, когда будет зарегистрировано другое предприятие увеличивать формат в 000002.

Не, что использует язык сценариев JavaScript или Джанго.

6
задан 15.04.2016, 23:35
1 ответ

Как он комментировал тебе из-за нашего чата в чате, не осложняйся стараясь показывать идентификацию до того, как он существовал, это обычно склонное к ошибкам.

То, что я рекомендую просто, состоит в том, чтобы ты форматировал идентификацию Предприятия в каком-то виде тип "Деталь Предприятия", для этого мы можем создавать функцию, которая форматировала бы идентификацию для того, чтобы он содержал 6 цифр.

Мы используем метод zfill цепей текста:

>>> id = 1
>>> str(id).zfill(6) 
'000001'
>>> id = 22
>>> str(id).zfill(6)
'000022'
>>> id = 333
>>> str(id).zfill(6)
'000333'

Тогда, в твоей модели Эмпреса мы можем создавать метод, чтобы форматировать Вашу идентификацию:

class Empresa(models.Model):
    # Tus campos

    def get_id_formateado(self):
        return str(self.pk).zfill(6)

И в тебе сдержись корреспондент в поле зрения "Деталь Предприятия" ты это показываешь:

ID de la Empresa: {{ empresa.get_id_formateado }}

Сейчас, если пользователю случается делать поиски Предприятия используя, например, 000123, ты это перемещаешь как параметр, так как Джанго уже берется за то, чтобы делать необходимым, чтобы искать реестр в базе данных.

Следующие операции - все эквивалентные:

>>> Empresa.objects.get(pk='000123')
>>> Empresa.objects.get(pk='0000000000000000000123')
>>> Empresa.objects.get(pk=123)
6
ответ дан 24.11.2019, 14:35