그냥 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..
그냥 기본 rotate 방식의 로깅 처리 RotatingFileHandler를 이용하여 구현해 뒀다. 막상 용량이 차서 파일을 새로 만드는 순간 에러가 발생한다. permission error winerror 32 [winerror 32] 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다 로깅 처리하는 방법은 아래 글을 참고하고, 2022.05.18 - [Django] - Django - logging middleware 간단 버전 누군가가 쓰고 있다고 파일을 생성해서 처리할 수 없다라고 뜬다. 사용자 코딩이 없는 관계로 약간 당황, 머 그래도 구글링 https://southsandstore.sakura.ne.jp/Programmer/django%E3%81%A7%E3%80%8C..
장고에서 쿼리 스트링으로 전달되는 문자열을 수정해서 다시 보내려고 시도하려고 한다. 이런 쿼리스트링이 저장된다는 QueryDict 라는 놈은 변경이 되지 않네. 이걸 다른 객체로 복사하고, 수정/삭제/추가 등의 변경을 한다음 QueryDict.copy() Python 표준 라이브러리의 copy.deepcopy()를 사용하여 객체의 복제를 생성하여 리턴한다. 복제는 변경가능하므로 값을 변경할 수 있다. 출처: https://engineer-mole.tistory.com/121 [매일 꾸준히, 더 깊이:티스토리] 문자열로 변환해서 사용하면 된다. 다시 쿼리 문자열에 대입할 수 없고 걍 문자열 변수로 넘겨주고 템플릿에서 적당히 받아서 다시 처리하자. 내가 사용한 코드는 그냥 참고로 아래에 둔다. s_page ..
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..
로그 기능을 넣기는 해야 겠다. 콘솔로 계속 띄워서 볼 수 는 없으니 미들웨어 기능으로 모든 request 를 로그를 저장해 보자고 맘 먹고 막 찾기 일단 구현된 결과는 아래 참고. 먼저, settings 에 로그 기능에 대한 설정을 해 둬야 한다. 여러군데 참고하는 중 젤 많이 보는 Pybo 게시판 쪽의 글을 가져와서 맞춰서 쓰기로 함 https://wikidocs.net/77522 작성한 코드는 아래와 같다. 아래 코드에서 파일로 저장하는 부분에 주목해서 보세요. (먼저 작업 폴더에 logs 라는 폴더를 수동으로 하나 만들어 둬야 한다) LOGGING = { "version": 1, "disable_existing_loggers": False, "filters": { "require_debug_fal..
regroup 기능을 이용해서 장고 템플릿에서 그룹별로 데이터를 출력하도록 쓰고 있는데, 이놈의 html이란 테이블에서 그룹별로 줄을 하나로 보이게 묶으려니깐 rowspan 이런거 써야 한다. 잘 정리된 글이 있어 일단 참조 https://stackoverflow.com/questions/25998557/grouping-with-rowspan-and-regroup-in-django Grouping with rowspan and regroup in Django I have a many to one relationship in Django: Model A and model B. I need to output a table where the objects are ordered and grouped by nam..
NULL 로 저장된 필드값을 비교하는 방법이 머였지? DB 마다 다를 수 있으니 잘 챙겨보시고, PostgreSQL 에서의 정답은 IS NULL IS NOT NULL SELECT id, first_name, last_name, email, phone FROM contacts WHERE phone IS NULL; https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-is-null/ PostgreSQL IS NULL Summary: in this tutorial, you will learn how to use the PostgreSQL IS NULL operator to check if a value is NULL or not. Introduc..
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..
model 에 바인딩된 model form view 등을 쓰게 되면 사용자 정의 필드, 혹은 값을 따로 받아서 처리하기가 약간 애매했다. 머든 방법은 있으니깐,, form 에서 사용자 변수 필드를 hidden 으로 보내줘도 받는놈이 받아야 하는데, model 에 연결된 것들은 해당 필드만 싹 가져오니깐 내가 고생해서 올려준 필드값을 볼 수 없다. 그래서 form_valid 를 overriding 해서 미리 보고, 내부 변수에 넣어두고 사용하자. @method_decorator(admin_required, name="dispatch") class PartsUpdateView(BSModalUpdateView): model = Parts filter = "" template_name = "devices/_mo..
일단 안 정보는 적어둬야 한다. SQL는 한번에 하나씩 수행되므로, 하나의 atomic 으로 묶여야 하는 오퍼레이션의 경우에는 처리 방법이 따로 있어야 할 듯 했는데....정답이 있었네 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=pjok1122&logNo=221609547295 [Python / Django] DetailView, ListView, FormView, Form 활용하기 (오버라이딩, 전달 객체 추가, 인자 추가) 1. DetailView (Template에 추가 데이터 전달하기) DetailView는 queryset이나 model을 전달받고, url... blog.naver.com def clean(self): ..
장고에서 Modal 창으로 처리하는 함수들을 위해 Django Bootstrap Modal Forms 라이브러리를 활용하고 있다. 홈페이지는 아래를 참고하세요. https://github.com/trco/django-bootstrap-modal-forms GitHub - trco/django-bootstrap-modal-forms: A Django plugin for creating AJAX driven forms in Bootstrap modal. A Django plugin for creating AJAX driven forms in Bootstrap modal. - GitHub - trco/django-bootstrap-modal-forms: A Django plugin for creating AJ..
html form 필드에 다양한 속성값을 주고 싶다...이건 기본이다. 장고 폼을 쓰면서 이런 속성을 쉽게 줄 수 있는 방법은 다양하게 있겠지만 그냥 아래 글 처럼 속성을 주는 것이 편할 듯 이글을 참고하시길 => Django Form에서 DOM class 설정 등의 front-end 조작법 # myapp/forms.py class MyForm( forms.ModelForm ): class Meta: model = MyModel def __init__( self, *args, **kwargs ): super( MyForm, self ).__init__( *args, **kwargs ) self.field[ 'my_field' ].widget.attrs.update( { 'class': 'form-cont..
파일 생성을 임의로 막 할 수 없기에 메모리상에 데이터를 zip 으로 묶어서 다운로드 해야 하는 경우가 생긴다. 대부분의 예제들이 파일을 기반으로 되어 있어서 response 로 바로 내려주는 것을 찾기 어려웠는데, 아주 좋은 예제가 있어서 소개한다. 이미 많은 곳을 거쳐서 테스트 했는데 아래 코드가 그나마 동작 가능한 코드이다. https://stackoverflow.com/questions/67454/serving-dynamically-generated-zip-archives-in-django import io def my_downloadable_zip(request): zip_io = io.BytesIO() with zipfile.ZipFile(zip_io, mode='w', compression=..