그냥 not in 키워드가 있으면 좋은데 https://django-orm-cookbook-ko.readthedocs.io/en/latest/notequal_query.html 4. NOT 연산으로 조건을 부정하려면 어떻게 하나요? — Django ORM Cookbook 2.0 documentation 4. NOT 연산으로 조건을 부정하려면 어떻게 하나요? 장고의 사용자 계정 관리 앱인 django.contrib.auth 를 사용하면 데이터베이스에 auth_user 라는 표가 생성됩니다. 이 표에는 username, first_name, last_name django-orm-cookbook-ko.readthedocs.io 정답은 exclude() filter(~Q()) 필드명__in=[a,b,c] 이런식..
실컷 그룹핑을 해뒀는데, 그룹핑 한 문자열에 총 합을 추가 하려고 하니 그룹 자체의 문자열이 바뀌니 이차저차 고민하던 차에 먼저 그룹핑 다하고, 나중에 Data name을 바꾸는 방법으로 접근하면 되겠다라고 생각했다 그리고, 아래와 같이 처리했다. 장고 코드와 결합해서 사용하려니, 제약이 좀 많다. 암튼 성공 var chart = bb.generate({ // size: { height: 400 }, data: { columns: [ {% for item in result_billboard %}{{ item|safe }},{% endfor %} ], type: "area-spline", // for ESM specify as: areaSpline() groups: [[ {% for item in resu..
간단한 세션 처리 방법을 정리해 두자. 원본 글은 여기 https://www.programink.com/django-tutorial/django-session.html Django Tutorial | Django Session & Login Session Learn Django Session variable and server side caching with this Django Session Tutorial. www.programink.com 예제 샘플은 다음과 같다. 쉽네 request.session["키워드"] 이렇게 쓰고, 읽으면 된다. from django.shortcuts import render from django.http import HttpResponse def setsession(re..
레코드가 혹은 object 가 있는 지 조사할 때 사용되는 method??? exists() 라는 게 있는데 아래 글 처럼 약간 고민해야 되는 부분이 있네요. 체크 이후에 그 오브젝트를 활용할 생각이 있으면 그냥 if obejct: 이렇게 하고 단순히 체크만 하면 exist() 가 조금 유리하다는... https://docs.djangoproject.com/en/4.1/ref/models/querysets/#django.db.models.query.QuerySet.exists QuerySet API reference | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Downl..
카운터를 1 증가하고 얼마가 되었는지 다시 쿼리해서 읽어보면 한 쓰레드로 동작하는 경우에는 생각하는 대로 증가한 값을 볼 수 있다. 근데 동시에 4개의 요청이 들어와 있는 상태에서 증가하는 것은 transaction.atomic 머 이런걸로 처리한다 하더라도 다시 쿼리 날려서 읽는 동안 여러놈이 증가를 시켰으면 읽은 값은 내가 증가한 값이 아니라 최종 값이 읽혀져서 문제다. 역시 udpate and get 을 한번에 하는게 좋은데, Django ORM의 update 는 리턴값이 그냥 id 값인듯 하다. 답은 있지 rawquery를 이요하는것. 내가쓰는 DB가 PostgreSQL 이니까 여기에 맞는 https://stackoverflow.com/questions/60026615/how-to-get-and-..
부득이하게 raw query 로 접근하는 경우가 있다. 이때 리턴되는 값은 일반 queryset 하고 좀 다른듯 암튼 필드 접근은 당연히 해야 하니깐, 받은 objs 가 리스트 형태로 저장되어 있어서 iteration 해서 값을 가져와야 되는듯 아래 코드를 참고하자. 당연히 구글링을 찾았지 ㅋㅋ 검색어가 먼지가 중요하지만, https://stackoverflow.com/questions/20325168/how-to-retrive-values-form-rawqueryset-in-django how to retrive values form RawQuerySet in django? my input query is query = "select * from tab1 left join tab2 on tab2.pat..
transaction.atomic() 이 중요해서, 하나 저장 https://blog.doosikbae.com/146 Django DB Transaction 2편 - 명시적으로 transaction 활용하기. (feat. savepoint) Introduction 안녕하세요. 1편 Django Transaction(트랜잭션) 1편 - Request와 DB Transaction 묶기(Feat. ATOMIC_REQUESTS) Django Transaction(트랜잭션) 1편 - Request와 DB Transaction 묶기(Feat. ATOMIC_RE.. blog.doosikbae.com # O 추천하는 방법. try: with transaction.atomic(): # dummy query for exa..
특정일이나, 특정월에 대한 결과를 필터링 하고 싶을때, Model에서는 datetime 형태의 필드로 저장해 두었다면, 다음 예제를 참고하면 된다. 첨에는 range로 조사해야 되나 생각했는데, 다행히 __month, __year, __day 이런 내장 키워드가 존재하고 있어 다행이다. orderitem_list.filter(date_due__month=cur_month, date_due__year=cur_year) 장고 프로젝트 홈의 문서에서도 찾아 볼 수 있다. https://docs.djangoproject.com/en/4.0/ref/models/querysets/#month QuerySet API reference | Django documentation | Django Django The web..
장고에서 쿼리 스트링으로 전달되는 문자열을 수정해서 다시 보내려고 시도하려고 한다. 이런 쿼리스트링이 저장된다는 QueryDict 라는 놈은 변경이 되지 않네. 이걸 다른 객체로 복사하고, 수정/삭제/추가 등의 변경을 한다음 QueryDict.copy() Python 표준 라이브러리의 copy.deepcopy()를 사용하여 객체의 복제를 생성하여 리턴한다. 복제는 변경가능하므로 값을 변경할 수 있다. 출처: https://engineer-mole.tistory.com/121 [매일 꾸준히, 더 깊이:티스토리] 문자열로 변환해서 사용하면 된다. 다시 쿼리 문자열에 대입할 수 없고 걍 문자열 변수로 넘겨주고 템플릿에서 적당히 받아서 다시 처리하자. 내가 사용한 코드는 그냥 참고로 아래에 둔다. s_page ..
redirect 를 하는데 쿼리 스트링을 같이 넘기고 싶을때, 이 간단한 것도 찾아봐야 하나 암튼 reverse 를 이용해서 아래처럼 하면 해결이 된다. return redirect(reverse_lazy("devices:page", kwargs={"pk": pval}) + "?" + request.GET.urlencode()) 참고한 사이트 주소는 여기 https://stackoverflow.com/questions/19784810/redirect-to-a-url-with-query-string-in-django Redirect to a url with query string in Django How can I go to a specific URL with parameters like if I have..
Django 4 버전 이상에서 CSRF 체크하는 부분이 좀 더 엄격하게 되어 있다는 사실을 에러가 나면 알게된다. 이전에 아무 문제 없이 잘 돌았는데, 새로 설치하다 보니 장고가 최신버전으로 설치되고, 잘 동작하던 웹 서비스가 갑자기 CSRF 에러를 발생시키며 404 에러 등을 찍는다....이러면 이렇게 수정하면 된다. https://not-to-be-reset.tistory.com/552 CSRF 토큰 오류 에러 내용 django 에서 DEBUG 옵션을 True로 둔 뒤, POST 요청을 보내면 아래와 같이 에러 내용이 출력된다. 1. 웹 브라우저에서 접속 시 403 error CSRF verification failed. Request aborted 2. django log For.. not-to-b..
영문으로 된 질문은 Foreign key field value instead of id without nesting schemas? 즉, Schema 만들때 외부키로 연결된 모델의 필드 값을 같이 볼 수 있도록 하는 방법, 그러나 nesting 되기를 원하지 않는다. 그냥 쉽게 하면 nesting으로 되기 때문에 중괄호 안에 또 중괄호가 생겨서 그 값을 가져와야 한다. 그냥 장고 템플릿에서 하는 것 처럼 "외부키__필드명" 이런형태로 막 가져오면 좋으련만 그르케 되지 않네 참고로, nesting 된다는 의미는 아래 결과 값을 참고하면 금방 알 수 있다. dep 밑에 dep 필드 가져오려면 복잡해 지제 { id: 1000, name: 'Some name', dep: { dep: 'Some Text' } }..
modelform을 사용하면서 model 에 정의되지 않는 별도의 사용자 필드를 추가해야 하는 경우가 많다. (ㅋ 나만 그런가) 암튼 이런경우, 템플릿에서는 안 보이기를 원하는 것이 당연하다. 이미 준비되어 있다 장고는 대부분이 forms.HiddenInput() class TagStatusForm(forms.ModelForm): class Meta: model = TagStatus widgets = {'tag': forms.HiddenInput()} https://stackoverflow.com/questions/15795869/django-modelform-to-have-a-hidden-input Django ModelForm to have a hidden input So I have my TagSt..
UpdateView 를 이용해서 view 함수를 꾸미는 경우 url 에 정의되어 있는 path parameter 를 어떻게 보나 살펴보고 있다. 그냥 view 함수는 그냥 매개변수로 넘겨주니깐 쉽게 되는데, class view 로 하는경우는 멀로 참고하나? 정답은 kwargs['변수명'] 뽑아 쓰라는 것 이네!! 아래 예제를 보면, self.kwargs["원하는변수명"] 이런식으로 뽑아쓰고 있는 것을 볼 수 있다. class DNSSettingsUpdateView(UpdateView): model = Domain form_class = NsRecordModelForm template_name = "engine/dns_settings.html" def get_object(self, queryset=None..
장고 템플릿에서 이 데이터가 있는지 없는지 보고 어떤 표현을 해야 하는 경우가 다반사이다. 이때 자꾸 헷갈려서 여기 한번 적어 둔다. 이런 내용은 매번 찾아보는 듯 쓸때마다 그냥 None 을 체크하면 될 듯하다. 아래처럼 == None 을 체크하던지, 아니면 그냥 변수명만 조건문에 넣어도 되는 것 같다. {% if profile.user.first_name == None %} {% if not profile.user.first_name %} https://stackoverflow.com/questions/11945321/what-is-the-equivalent-of-none-in-django-templates What is the equivalent of "none" in django templates?..