바뀜

둘러보기로 가기 검색하러 가기
172 바이트 제거됨 ,  2021년 6월 2일 (수) 15:13
53번째 줄: 53번째 줄:  
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
 
def index(request):
 
def index(request):
 +
    c = 모델.objects.get(pk=기본키값)  # 객체를 불러오고...
 
     c.delete()
 
     c.delete()
 
</syntaxhighlight><syntaxhighlight lang="python">
 
</syntaxhighlight><syntaxhighlight lang="python">
 
def index(request):
 
def index(request):
     목록 = 모델.objects.exclude(칼럼명 = True, >0 따위의 조건들...).delete()  # 조건을 제외한 것들을 삭제한다.
+
     목록 = 모델.objects.exclude(조건).delete()  # 조건을 제외한 것들을 삭제한다.
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|}
 
|}
 +
 +
===객체의 속성에 접근===
 +
모델.속성 형태로 속성에 접근 가능하다. 일반적으로
 +
 +
<code>객체 = 모델.objects.get(id=pk)</code>
 +
 +
객체.속성 형태로 접근한다.(수정을 하고 반드시 저장을 해주어야 한다.)
 
==데이터 불러오기==
 
==데이터 불러오기==
 
===객체 다 가져오기===
 
===객체 다 가져오기===
82번째 줄: 90번째 줄:  
# 모델.objects는 객체목록을 받는다는 의미이다.
 
# 모델.objects는 객체목록을 받는다는 의미이다.
 
def index(request):
 
def index(request):
     목록 = 모델.objects.filter(칼럼명="칼럼")  # True가 나오는, >0 따위의 조건들을 건다.
+
     목록 = 모델.objects.filter(칼럼="내용")  # True가 나오는, >0 따위의 조건들을 건다.
 
     목록2= 목록.objects.filter(조건들..)  # 걸러진 객체들에 또다시 필터를 걸 수도 있다.
 
     목록2= 목록.objects.filter(조건들..)  # 걸러진 객체들에 또다시 필터를 걸 수도 있다.
 
</syntaxhighlight>필터는 몇번이라도 걸 수 있는데, 장고는 지연평가 방식을 사용하기 때문에 실제로 데이터를 질의하는 것은 한 번 뿐이다. 덕분에 부하가 걸리지 않고도 filter를 자유롭게 사용할 수 있다.<syntaxhighlight lang="python">
 
</syntaxhighlight>필터는 몇번이라도 걸 수 있는데, 장고는 지연평가 방식을 사용하기 때문에 실제로 데이터를 질의하는 것은 한 번 뿐이다. 덕분에 부하가 걸리지 않고도 filter를 자유롭게 사용할 수 있다.<syntaxhighlight lang="python">
 
def index(request):
 
def index(request):
     목록 = 모델.objects.filter(칼럼명>0)
+
     목록 = 모델.objects.filter(조건)
 
     .filter(조건)
 
     .filter(조건)
 
     .filter(조건2)
 
     .filter(조건2)
134번째 줄: 142번째 줄:     
def index(request):
 
def index(request):
     목록 = 모델.objects.exclude(칼럼명 = True, >0 따위의 조건들...)
+
     목록 = 모델.objects.exclude(칼럼명 = True, __gte=0 따위의 조건들...)
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===특정단어 검색===
 
===특정단어 검색===
184번째 줄: 192번째 줄:  
#모델.objects는 객체목록을 받는다는 의미이다.
 
#모델.objects는 객체목록을 받는다는 의미이다.
 
def index(request):
 
def index(request):
     목록 = 모델.objects.order_by('-create_date') #create_date속성의 역순으로 정리하라는 의미.
+
     목록 = 모델.objects.order_by('-create_date') # create_date속성의 역순으로 정리하라는 의미.
 
     context={'템플릿에서 쓸 변수명':목록)
 
     context={'템플릿에서 쓸 변수명':목록)
 
     return render(request, '템플릿', context)
 
     return render(request, '템플릿', context)
 
</syntaxhighlight>order_by('?') 로 두면 객체들을 랜덤하게 배치한다.
 
</syntaxhighlight>order_by('?') 로 두면 객체들을 랜덤하게 배치한다.
   −
===객체의 속성에 접근===
  −
모델.속성 형태로 속성에 접근 가능하다. 일반적으로
  −
  −
<code>객체 = 모델.objects.get(id=pk)</code>
  −
  −
객체.속성 형태로 접근한다.(수정을 하고 반드시 저장을 해주어야 한다.)
   
===새로운 속성 만들어 사용하기===
 
===새로운 속성 만들어 사용하기===
 
정렬을 하는데 하위 모델의 갯수를 세어 정렬해야 할 때엔 새로운 속성을 만들어 적용해야 한다.
 
정렬을 하는데 하위 모델의 갯수를 세어 정렬해야 할 때엔 새로운 속성을 만들어 적용해야 한다.
   −
<code>모델.objects..order_by(Count='answer', '-create_date')</code> 형태로 작성이 되진 않는다. order_by 안의 괄호에 들어가야 하는 건 항상 속성 뿐이다.
+
<code>모델.objects.order_by(Count='answer', '-create_date')</code> 형태로 작성이 되진 않는다. order_by 안의 괄호에 들어가야 하는 건 항상 속성 뿐이다.
    
때문에 annotate를 사용해 새로운 속성을 만들어준 후에 oreder_by를 써야 한다. <code>모델.objects.annotate(num=Count('하위모델')).order_by('-num', '-create_date')</code> # -num으로 우선배치한 후, 같은 숫자가 나온다면 만들어진 순서로 우열을 정한다.)
 
때문에 annotate를 사용해 새로운 속성을 만들어준 후에 oreder_by를 써야 한다. <code>모델.objects.annotate(num=Count('하위모델')).order_by('-num', '-create_date')</code> # -num으로 우선배치한 후, 같은 숫자가 나온다면 만들어진 순서로 우열을 정한다.)
206번째 줄: 208번째 줄:     
==유의==
 
==유의==
탬플릿에선 위 속성들을 그대로 사용할 수 있지만, 괄호는 빼주고 기입한다.<syntaxhighlight lang="python">
+
탬플릿에선 위 속성들을 그대로 사용할 수 있지만, 괄호는 빼주고 기입한다.
def index(request):
  −
    목록 = 모델.objects.exclude(칼럼명 = True, >0 따위의 조건들...).delete()  # 조건을 제외한 것들을 삭제한다.
  −
</syntaxhighlight>
   
[[분류:장고 뷰]]
 
[[분류:장고 뷰]]
익명 사용자

둘러보기 메뉴