Django에서 상속 된 모델 속성에 대한 일반 모델 양식 필드 유효성 검사기를 만드는 방법은 무엇입니까?

사용자 956424

부모 모델이 있습니다.

class AbstractAddress(models.Model):
    name = models.CharField(max_length=100,verbose_name='Name')
    address1 = models.CharField(max_length=100,null=True,blank=True)
    city = models.CharField(max_length=100,null=True,blank=True)
    phone = models.CharField(max_length=10,null=True,blank=True)
    pincode = models.IntegerField(null=True,blank=True, default=0)

    class Meta:
          abstract = True

이 모델은 Vendor, Client, Employee 모델을 만들기 위해 상속합니다. 이제 관리자 ModelForm에서 :

pincode = CharField(widget=TextInput(attrs={'type':'number'}),
                    validators=[RegexValidator(regex='^.{6}$',message='Pincode can have 6 digits')],
                    required=False, min_length=6)

phone = CharField(widget=TextInput(attrs={'type':'number',
                                          'size':'10'}),
                  validators=[RegexValidator(regex='^.{10}$', message='Phone can have 10 digits')],
                  required=False, min_length=10)

이 코드는 위에서 언급 한 모델의 모든 모델 폼에 대해 작성하고 싶지 않습니다. DRY를 어떻게 사용할 수 있습니까?

사용자 956424

settings.py와 동일한 폴더의 프로젝트에서 유효성 검사를 정의하고 유효성 검사 방법을 다음과 같이 정의했습니다.

def validated_pincode():
    pincode = CharField(widget=TextInput(attrs={'type':'number'}),
                  validators=[RegexValidator(regex='^.{6}$',message='Pincode can have 6 digits')],
                    required=False, min_length=6)
    return pincode

modeladmin 형식에서 메서드를 호출합니다.

pincode = validated_pincode() 

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관