Django에서 ORM 일대 다중 모형의 증가, 삭제, 수정, 필기

2580 단어 djangoorm
class Colors(models.Model):
    colors = models.CharField(max_length=10,verbose_name='   ') 
    
    class Meta:
        vebose_name = '   '
        vebose_name_plural = '   '


class Clothes(models.Model):
    color = models.ForeignKey("Colors",verbose_name='    ') 
    description = models.CharField(max_length=10,verbosename='  ') 

    class Meta:
        verbose_name = '   '
        vebose_name_plural = '   '

조사
(1) 메인 테이블 데이터를 찾습니다.
1. 메인 테이블을 통해 직접 조회하기:
color = models.Colors.objects.get(clothes__description="   ").colors)  #       

2. 테이블에서 마스터 테이블을 질의합니다.
color = models.Clothes.objects.get(description="   ").color.colors

(2) 테이블 데이터를 찾습니다.
1. 메인 테이블을 통해 조회하기:
color_obj = models.Colors.objects.get(colors=" ")
qs = color_obj.clothes_set.all() #  _set         ,     related_name  ,          (  clothes_set)

2. 테이블에서 질의하기
(1) 객체 질의:
qs = models.Clothes.objects.filter(color=models.Colors.objects.get(colors=" "))
#       (    )
#qs = models.Clothes.objects.filter(color__colors=" ")

(2) id 쿼리:
color_id=models.Colors.objects.get(colors=" ").id  #            id
qs = models.Clothes.objects.filter(color_id=color_id)

2. 증가:
(1) 객체 통과:
models.Clothes.objects.create(color=models.Colors.objects.get(colors=" "),description="   ")

(2) id 통과:
models.Clothes.objects.create(color_id=models.Colors.objects.get(colors=" ").id,description="   ")

지우다
(하나)
models.Clothes.objects.get(description="   ").delete() #   QuerySet    delete()

(2)
models.Colors.objects.filter(colors=" ").delete()

고치다
(1) 객체 통과:
models.Clothes.objects.filter(color__colors=" ").update(description="   ")

(2) id 통과:
models.Clothes.objects.filter(color_id=models.Colors.objects.get(colors=" ").id).update(description="   ")

(3) 시계의 를 통해set 메서드 질의 대칭 이동:
colors_obj=models.Colors.objects.get(colors=" ")
colors_obj.clothes_set.filter(id__gte=1).update(description="   ")
#    (Clothes)    related_name(  'cls'),       :
#colors_obj.cls.filter(id__gte=1).update(description="   ")

좋은 웹페이지 즐겨찾기