(抱歉我英语不好(
我有一个整数字段my models.py。我用它来表示电话号码。电话号码从零(0(或正(+(开始。当我写这个字段:05555555时,它将显示:5555555。我如何写05555555并显示0555555?我尝试了电话号码字段,但遇到了问题。下面是我的型号。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"}),
}
请帮帮我。谢谢
Event尽管你说你的电话号码字段有问题,但它比电话号码的整数字段要好得多。使用纯整数字段,您将无法存储任何区域代码,前缀如(+或#(。
以下是另一个问题,将为您提供django中电话号码的最佳实践。这里有与解决方案相关的github。
如果你真的需要这个数字保持整数,你可以存储两个字段,一个是作为整数的电话号码,另一个是字符字段的前缀,然后将它们连接起来(都作为字符串(以获得完整的数字。
这个解决方案在我看来并不太漂亮,而且它不应该用于商业或敏感编码。
您不应该使用integerField。。。而是使用CharField并设置验证器函数
Phone = Models.CharField(max_length=15 , null=False,validators=[phone_validate])
def phone_validate(value):
max_length = 12
min_length = 8
if value.isdigit==True and len(value)>min_length and len(value)<max_length :
return value
else:
raise ValidationError("phone number must be 9-11 digit")