首页 > 解决方案 > Django如何将整数字段从零开始?

问题描述

(对不起我的英语不好)

我有一个整数字段我的models.py.我用这个作为电话号码。电话号码从零(0)或加号(+)开始。当我写这个字段时:05555555这将是显示:5555555。我是怎么做的我写了 05555555 并显示 0555555?我尝试了电话号码字段,但使用了问题。这里是我的 models.py:

from django.db import models
from django.contrib.auth.models import User

class elan(models.Model):
    cixis_yeri = models.CharField(max_length=150)
    catma_yeri = models.CharField(max_length=150)
    cixis_vaxti = models.DateField()
    catma_vaxti = models.DateField()
    elaqe_nomresi = models.IntegerField()
    sirket = models.CharField(max_length=100,blank=True,null=True)
    elave_melumatlar = models.TextField(null=True,blank=True)
    silinme_vaxti = models.DateTimeField()
    user = models.ForeignKey('auth.User',verbose_name='paylasan',on_delete=models.CASCADE)
    favorit = models.ManyToManyField(User,blank=True,related_name="favorit")

    def __str__(self):
        return self.cixis_yeri


    class Meta:
        ordering = ['-id']

表格.py:

from django import forms
from .models import elan

class elanform(forms.ModelForm):

    class Meta:
        model = elan
        fields = [
            'cixis_yeri',
            'catma_yeri',
            'cixis_vaxti',
            'catma_vaxti',
            'elaqe_nomresi',
            'elave_melumatlar',
            'sirket',
        ]

        labels = {
            'cixis_yeri':"Çıxış Yeri",
            'catma_yeri':"Çatma Yeri",
            'cixis_vaxti':"Çıxış Vaxtı",
            'catma_vaxti':"Çatma Vaxtı",
            'elaqe_nomresi':"Əlaqə Nömrəsi",
            'elave_melumatlar':"Əlavə Məlumatlar",
            'sirket':"Şirkət",
        }

        widgets = {
            'cixis_yeri': forms.TextInput(attrs = {'class':'form-control kendi','placeholder':'Olke-Seher','id':"exampleFormControlInput1"}),
            'catma_yeri': forms.TextInput(attrs = {'class':'form-control kendi','placeholder':'Olke-Seher'}),
            'cixis_vaxti': forms.DateInput(attrs = {'class':'cixis_vaxti','type':'date'}),
            'catma_vaxti': forms.DateInput(attrs = {'class':'catma_vaxti','type':'date'}),
            'elave_melumatlar': forms.Textarea(attrs = {'class':'form-control kendi','placeholder':'elave_melumatlar(Vacib Deyil)','type':'text','id':'exampleFormControlTextarea1','rows':'6','columns':'2'}),
            'sirket': forms.TextInput(attrs = {'class':'form-control kendi','placeholder':'(Vacib Deyil)','type':'text','id':'exampleFormControlTextarea1','rows':'6','columns':'2'}),
            'elaqe_nomresi': forms.NumberInput(attrs = {'class':'form-control kendi','placeholder':'Elaqe','id':"exampleFormControlInput1"}),
        }

请帮助我。谢谢。

标签: pythondjangofield

解决方案


尽管您说电话号码字段有问题,但它比电话号码的整数字段要好得多。使用纯整数字段,您将无法存储任何区域代码、前缀,例如 (+ 或 #)。

这是另一个问题,它将为您提供 django 中电话号码的最佳实践。那里有与解决方案相关的github

如果您确实需要将数字保持为整数,则可以存储 2 个字段,一个是电话号码作为整数,一个是前缀作为字符字段,然后将它们连接起来(都作为字符串)以获得完整号码。

这个解决方案对我来说似乎不太漂亮,它绝对不应该用于商业或敏感编码。


推荐阅读