Django

A collection of 34 posts
Django

Django - Cron, command 처리

일단 정리하기 전에 참고 페이지만 등록 [django] command와 crontab을 함께 써보자. - yenosdjango,command,crontabYenos BlogDjango 커스텀 manage.py 명령어 만들기장고 프로젝트에서 manage.py 를 이용해 프로젝트 관련 명령을 실행할 때가 있다. 등등 테스트용 서버를 띄우거나 …Windy Bay 잘 읽고 정리해 보자. 검색 키워드는 class Command(BaseCommand): cron 등록 이었다
1 min read
Django - model.py 선언 규칙
Django

Django - model.py 선언 규칙

model.py 에서 모델들을 정의할 때 함수나 Meta 선언의 위치가 정해지면 좋겠다고 생각하고 있었는데, 자신의 프로젝트에 사용 중인 룰을 공개해 주신 분이 있네요. 제목은 아닌 것 같지만, 방문해 보면 ▎모델 클래스 내 코드 순서 정리 섹션에 같은 룰을 명기해 두셨네요. 감사한 일이죠! [오픈갤러리] Django 서버 정리 작업 ③ - 불필요한 파일/
2 min read
Django - modelform 사용자 필드 추가 - 필드 순서 변경 방법
Django

Django - modelform 사용자 필드 추가 - 필드 순서 변경 방법

그냥 model 에 사용된 필드만 쓰면 별 고민이 없는데, 꼭 쓰다보면 사용자 정의 필드를 넣어줘야 할 때가 있다. 이때마다 생각이 안나서 일단 정리 필드를 그냥 변수 정의하듯이 정의해서 사용하면 된다. class ShippingProductUpdateForm(BSModalModelForm): title = "" update_firmware_version = forms.CharField(label=_("*업데이트버전"), widget=forms.TextInput(attrs={"readonly": True})) class Meta: model
2 min read
Django - modal 창에 form error 출력
develop

Django - modal 창에 form error 출력

Django model forms (https://github.com/trco/django-bootstrap-modal-forms/blob/master/README.rst) 이용하고 있는데, 모달 창이 뜬 상태에서 form submit 을 수행하고, 에러가 발생하면 해당 모달창에 바로 띄워주고 싶어서 시도! 원래 제공되는 기능인데, 그냥 쓴 방법을 정리해 둔다. 모달창 템플릿 코드는 아래와 유사하게 되어 있다. 여기서 div class="invalid" 부분이
3 min read
Django - Ninja api querystring 처리
Django

Django - Ninja api querystring 처리

Django ninja api 엔진을 쓰고 있는데, 쿼리스트링을 처리하는 함수를 만들려고 한다. 주소에서 파라메터를 뽑아 쓰는 것은 직관적이었는데... 역시 똑같다. 차이가 없다. @api.get("/weapons") def list_weapons(request, limit: int = 10, offset: int = 0): return weapons[offset: offset + limit] * 파라메터에 기본값을 넣고 추가해 준다. 이건 path parameter 와 완전 동일하다.
1 min read
Django - CreateView form_valid() 오버라이딩
develop

Django - CreateView form_valid() 오버라이딩

CreateView 저장 작업을 할때 커스텀 동작이 필요하다면, form_valid()를 오버라이딩해서 그냥 여기서 저장해 버리는 방법이 있다. View를 쓴다는게 좀 커스텀 동작을 제약하는 경우와 편리성을 바꾸는 것이니 만큼 좀 불편해도 이렇게라도 변경해서 쓰자. 기본 코드는 아래와 같다. def form_valid(self, form): self.object = form.save() # do something with self.
2 min read
Django - ModelForm __init__() 함수 예제
develop

Django - ModelForm __init__() 함수 예제

그냥 예제 ModelForm init() 함수에서 수행할 것을 몇 가지 저장해 둔다. * 원하는 필드만 보여주기 fields * 필요 없는 필드 제거해서 보여주기 exclude * labels 를 이용한 원하는 라벨 표기 * widgets 으로 원하는 form 객체 가져다 놓기 * 필드에 필터링 해서 데이터를 올려줄 수 있는 queryset * empty label 보여주지 않게 하기 class ProductProfileForm(forms.
1 min read
Django - UpdateView form_valid() 예외처리
develop

Django - UpdateView form_valid() 예외처리

UpdateView 를 이용하여 업데이트 할때, 혹여나 form_valid() 에서 Exception 이 발생하면 그냥 오류 페이지가 떡 떠버린다. 이런거 무시하고 특정 페이지로 무조건 리턴되도록, 즉 예외가 발생하면 update 없이 머 success url 로 이동시키자 이런 코드를 넣어보자. 단순하게 아래처럼 예외를 pass 해버리고 무조건 success_url() 로 이동시키도록 해봤다. def form_valid(
1 min read
Django - UpdateView pk 있을때 없을때 다 처리하기
Django

Django - UpdateView pk 있을때 없을때 다 처리하기

UpdateView pk 없이 사용하는 방법을 전 포스트에서 알아 봤는데 PK 값이 url에 있든 없든 하나의 View로 다 처리하고 싶어졌다. 일반 사용자는 자기꺼만 처리하면 되지만, superuser 혹은 admin은 다른 사용자 정보를 수정하고 싶을 수 도 있기 때문에 pk 값을 넘겨 받아서 사용하는 것도 같은 UpdateView에서 처리하고 싶었다. 그냥 get_object() 함수
3 min read
Django - UpdateView pk 없이 사용하기
develop

Django - UpdateView pk 없이 사용하기

url 로 UpdateView 의 PK 값을 넘겨주는 방식이 일반적인데, 사용자 정보 같은 것을 넘겨줄 때 사용자에 대한 pk 값이 노출되는게 부담스럽다. 꼭 넘겨줘야 하나? 내꺼만 고치면 되는데... 이때는 내장 함수를 통해 자기가 로딩 되면서 가져오도록 하면 된다. 자기 객체를 불러오는 방식이다. 주인공은 바로, get_object(self) @method_decorator(login_required,
2 min read
Django - 유효성 검사에 대한 글
Django

Django - 유효성 검사에 대한 글

수많은 정보를 저장하고 꺼내오고 해야 하는 시대에 Django 로 서비를 만들고 하다보면, 각각 필드의 유효성 검사에 대한 고민이 엄청 많다. 폼에서 하나 자바스크립트로 하나 model 에서 하나...등등등 아래 글에서 인사이트를 얻어보자 잘 정리해 두셨네. 강의를 들으면서 정리하신 내용 같은데 많은 도움이 되었어요 😊 Django Form Validation출처 : https://www.inflearn.com/
3 min read
Django Template - with 변수 선언
Django

Django Template - with 변수 선언

변수가 너무 길어서 엄청 불편함, 좀 줄인 변수에 넣어서 해보고 싶어서 좀 찾아봄, 예를 들어 request.user.profile.company.name 이런 식의 변수를 간단하게 쓰면 좋겠다 😁 with 구문으로 페이지에 쓰일 사용자 변수를 선언해서 쓸 수 있네. {% with total=business.employees.count %} {{ total }} employee{{ total|pluralize }} {% endwith %} 복수 개를 선언 하려면,
1 min read
Django - ForeignKey display text 
변경하기
Django

Django - ForeignKey display text 변경하기

modelforms 에서 자동으로 값을 가져오긴 하는데 __str__ 에 정의된 글자나 키 값을 기본으로 보여준다. 부가적으로 정보를 더 보여주고 싶은데 __str__ 을 바꾸면 전체에 이 모델을 접근하는 부분이 다 바뀌므로, 딱 combo에 올라가는 글자만 변경하고 싶다면, label_from_instance 속성을 건드리면 된다. 자세한 설명은 아래 링크를 참고해 보시고, How to change
2 min read
Django model.forms 사용자 필드 추가
develop

Django model.forms 사용자 필드 추가

model form에서 추가로 별도의  사용자 필드를 추가하고 싶다면, 아래처럼 추가로 forms.필드타입 으로 선언해서 사용하면 된다. label, widget 용례도 참고해 보면 좋다. required=False 도 옵션으로 주면, 필수 항목으로 추가 되지 않는다. class FirmwareForm(forms.ModelForm): is_fileinclue = "enctype=multipart/form-data" autogen = forms.BooleanField(label=_("중복시 자동변경"), widget=forms.CheckboxInput(
2 min read