모델 디자인 공통 기술 및주의 사항

  • verbose_name은 더 단정하고 질서 쓰기, 첫 번째 인수로 사용할 수 있습니다;
= models.CharField 이름 ( ' 카테고리 이름 ' , 기본 = "" , 30 = MAX_LENGTH, help_text = " 카테고리 이름 " )
  • 널 (null) = 사실, 빈 = 사실 일반적으로 이전했다 데이터베이스 필드가 비어 있습니다 = 거짓 필요한 양식을 나타내는 null이 될 수있는 동시에 발생;
= models.DateField 생일 ( " 생년월일 " , 널 (null) = 사실, 빈 = 참)
  • 외부 키는 삭제 (기본값) 계단식 대표, on_delete = models.CASCADE 설정;
카테고리 = models.ForeignKey (GoodsCategory, on_delete = models.CASCADE, verbose_name = " 商品类目" )
  • 쿼리 되돌릴 수 외래 키를 related_name 관리자가 이름;
제품 = models.ForeignKey (제품, on_delete = models.CASCADE, verbose_name = " 商品" , related_name = " 이미지 " )
  • 각 모델과 필드 verbose_name 설정뿐만 아니라, 각 모델 쉬운 문서 관리 프로젝트를위한 방법을 __str__ 달성하려고 시도;
클래스 메타 : 
    verbose_name = ' 商品轮播' 
    verbose_name_plural = verbose_name 

데프  __str__ (자동) :
     리턴 self.goods.name
  • USE_TZ이 참 / 거짓 여부, 물론) (django.utils.timezone.now 사용하려고, 더 나은 방법은 사용하는 것입니다 auto_now / auto_now_add = TRUE;
add_time = models.DateTimeField (기본값 = timezone.now, verbose_name = " 添加时间" )
  • 유사한 방법을 사용 get_user_model 모델 사이 디커플링 달성하는 단계;
# get_user_model方法会中找AUTH_USER_MODEL 설정去
에서 django.contrib.auth 수입 get_user_model의 
사용자 = get_user_model ()
  • 고유 매개 변수 '고유 제한 조건을'추가;
order_sn = models.CharField ( " 订单编号" , MAX_LENGTH = 30, 널 (null) = 사실, 빈 = 사실, 독특한 = 참) 

클래스 메타 : 
    verbose_name = ' 用户收藏' 
    verbose_name_plural = verbose_name 
    unique_together = ( " 사용자 " , " 제품 " )
  • MySQL의 데이터베이스 스토리지 엔진은 INNODB로 설정하십시오;
" 옵션 " : { " init_command " : " default_storage_engine = INNODB을 SET; "

 

추천

출처www.cnblogs.com/echo1937/p/11291874.html