django 장고 정렬하기 ordering 글 컨텐츠 정렬


장고에서 정렬을 하기위한 방법

1. order_by(정렬기준인자) 이용

직접 쿼리에 적용하는 것이다.

def all(self):
return self.get_queryset().active().has_embed().order_by('timestamp')

점 찍고 order_by( ) 하면된다

전달인자로 timestamp 로 하면 생성시간 순서대로 

title이라는 항목이 있다면 title 알파벳 순서로 정렬된다. 이때 ABC...Z abc...z 이런식으로 대문자부터 정렬된다

역정를 하고 싶다면 인자로 -timestamp  로 -마이너스를 전달하면된다


2. class Meta 이용

class Video(models.Model):
title=models.CharField(max_length=120)
........

class Meta:
ordering = ['-timestamp']

클래스 메타를 이용해서 정렬해도 된다

django 장고 이미지 미디어파일 로딩못할때

로컬에서 개발할때 이런현상이 종종 발생

static 파일이나 css 로딩을 못할때가 있다


이것은 장고가 서빙을 못해서 인데 , 임시로 방법이 있다. 하지만 보안적으로좋지 않다고함


settins.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR),"static", "media")

미디어 경로설정을  추가하고


urls.py

from django.conf.urls.static import static
from django.conf.urls import include, url
from django.conf import settings
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)

models.py

def get_image_url(self):
return '%s%s' %(settings.MEDIA_URL, self.image)


불러올 html에서

{% block content %}
{% for q in queryset %}
<a href="{{q.slug}}">{{q.title}}</a>
<a href="{{q.slug}}"><img src="{{q.get_image_url}}" class="img-responsive"></a>
<br/>
{%endfor%}
{% endblock %}

이렇게 하면 이미지가 로컬에서 불러와 진다


위에 settins 랑 url 를 생략하면 엑박으러 나온다

장고 1.8 이후 patterns 는 없어졌다고 한다


As of Django 1.10, the patterns module has been removed (it had been deprecated since 1.8).


패턴없이도

urlpatterns = [
url(r'^admin/', admin.site.urls),]

이렇게 쓰는것이 가능

+ Recent posts