2016-05-22 2 views
1

В моем сериале (работает как id), имеет ровно 13 символов, для этого есть атрибут? Пример: Вместо 3, мне нужен серийный стать INTEGER из 0000000000003.Как исправить длину IntegerField или AutoField?

class Entrada(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1) 
    medicamento = models.ForeignKey(Medicamento, verbose_name=_(u'Medicamento')) 
    serial = models.AutoField(_(u'Serial'), null=False, blank=False, unique=True, db_index=True, primary_key=True) 
    validade = models.DateField(_(u'Validade'), auto_now=False, auto_now_add=False) 
    lote = models.CharField(_(u'Lote do fabricante'), null=False, blank=False, max_length=20) 
    quantidade = models.PositiveIntegerField(_(u'Quantidade'), null=False) 
    mud = models.PositiveIntegerField(_(u'Menor unidade de dispensa'), null=False) 
    data_entrada = models.DateField(_(u'Data de entrada'), default=timezone.now()) 

ответ

0

Вы можете использовать .zfill поставить ведущие нули в вашем целое:

str(3).zfill(13) 

Это даст вам строку. Вы можете использовать его позже как целое число с int().

+0

Стоит отметить, что максимальное значение, которое может удерживать AutoField, составляет 2147483647. – Wilerson

0

Джанго 1,10 добавит поддержку для BigAutoField. Вы можете попытаться скопировать их реализацию, посмотрев на его source code.

Смежные вопросы