목록전체 글 (19)
J, J Blog
템플릿에서 체크박스 데이터를 받아야 하는 경우가 왕왕 있다. 장고에서는 이 경우 getlist를 통해 리스트 데이터를 받을 수 있다. {% for obj in objects %} {% endfor %} 저장 # views.py def my_view(request): if request.method == 'POST': selected = request.POST.getlist('selected') print(selected) return redirect(...) # 만약 obj.id 가 4, 7, 13 인 체크박스를 선택해서 요청했다면 프린트 결과는 # ['4','7','13'] 이 된다.
1. settings.py 의 installed_apps 에 'django.contrib.humanize', 를 추가하고 2. 템플릿 최상단에 {% load humanize %} 3. 템플릿 필터 적용 {{ my_num|intcomma }}
우리가 쇼핑몰에서 주문을 할 때, 여러 상품들을 장바구니에 담아 구매요청을 하고 한 번에 결제를 한다. 이 때, '주문'과 '주문 상품' 은 일 대 다 관계를 갖게 된다. prefetch_related 는 이러한 데이터를 한 번에 가져올 때 유용하게 쓰인다. (성능상의 이점도 있으니 Django에서 서로 다른 테이블을 조인하여 가져오는 경우에는 prefetch_related 를 꼭 사용하자) '주문' 모델을 'Order' 라 하고 '주문상품' 모델을 'OrderItem' 이라 한다. # models.py class Order(models.Model): created_date = models.DateTimeField(auto_now_add=True) class OrderItem(models.Model): ..
django-allauth를 사용하다 보면 login_redirect 관련해서 설정이 짜증날 때가 있다. # setting.py 에 LOGIN_REDIRECT_URL 을 설정하는 방법 LOGIN_REDIRECT_URL = '/' 하지만 위 방법으로는 로그인 시 항상 index 페이지로 가게된다. 만약 현재 페이지로 redirect를 하기를 원한다면 로그인 url에 next 파라미터값을 전달해주면 된다. 로그인
다음 장고문서를 참조한다. https://docs.djangoproject.com/en/dev/ref/contrib/admin/#reversing-admin-urls The Django admin site | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com ''' Changelist {% url 'admin:{{ app_label }}_{{ model_name }}_changelist' %} Add {% url 'admin..
썸네일 만들기 만드는 방법은 세 가지가 있다. 1. 썸네일 이미지만 저장하는 방법 2. 둘 다 저장하는 방법 3. 원본만 저장하는 방법 개인적으로 파일 찌꺼기가 남는게 싫어서 3번째 방법을 사용했다. 원본만 저장하고 템플릿에서 원본파일로부터 썸네일을 처리해 보여주는 방식이다. 이미지를 삭제하거나 변경이 있을 때는 원본 이미지 파일을 삭제하도록 처리했다. models.py 는 다음과 같다 class MyModel(models.Model): image = models.ImageField(blank=True, null=True, upload_to='images/my_model/%Y/%m/%d', default='images/no_image.png', verbose_name='이미지') @receiver(mod..
다음과 같이 설정하면 admin.py에서 prepopulated_fields 를 설정하지 말 것! # generate_unique_slug 함수를 선언하고, 적용하고자 하는 모델에 save 함수를 오버라이딩한다. from django.utils.text import slugify def generate_unique_slug(klass, field): """ return unique slug if origin slug is exist. eg: `foo-bar` => `foo-bar-1` :param `klass` is Class model. :param `field` is specific field for title. """ origin_slug = slugify(field, allow_unicode=Tr..
{% url 'admin:index' %} {% url 'admin:(app_name)_(model_name)_add' %} {% url 'admin:(app_name)_(model_name)_change' id %} {% url 'admin:(app_name)_(model_name)_changelist' %} 과 같은 형태로 넣어주면 admin page로 이동할 수 있다. 예시) {% url 'admin:index' %} {% url 'admin:polls_choice_add' %} {% url 'admin:polls_choice_change' choice.id %} {% url 'admin:polls_choice_changelist' %}