2016-05-22 9 views
1

In meiner Seriennummer (funktioniert wie die ID), hat genau 13 Zeichen, gibt es einige Attribute dafür? Beispiel: Statt 3, ich brauche die Serien eine ganze Zahl von 0000000000003.Wie wird die Länge eines IntegerField oder AutoField behoben?

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()) 

Antwort

0

können Sie verwenden .zfill führende Nullen in Ihre ganze Zahl ausgedrückt:

str(3).zfill(13) 

, dass Sie eine Zeichenfolge geben. Sie können es später als Ganzzahl mit int() umsetzen.

+0

Es ist erwähnenswert, dass der maximale Wert, den ein AutoField halten kann, 2147483647 ist. – Wilerson

0

Django 1.10 Unterstützung für ein BigAutoField fügt werden. Sie können versuchen, ihre Implementierung zu kopieren, indem Sie auf source code schauen.

Verwandte Themen