Django 질문 및 답변

TopInsert 방식입니다.


Django로 프로젝트 my_project를 만들었습니다. 그리고, 그 안에 app_a 와 app_b 두개의 어플리케이션을 만들었습니다.

app_a 와 app_b 의 중복되는 부분이 많아서, 중복되는 부분만을 처리하는 app_c를 따로 만들었습니다. 그래서, 실제 app_a 의 urls.py 를 보면, 특정 view를 곧바로 app_c 의 것을 사용하도록 되어 있습니다.

이런 방식으로 동작하는 몇몇 app_c의 view에서 원래 호출한 app_a의 application name을 알아야 할 경우가 생겼습니다. 어떻게 app_a 의 이름을 알아낼 수 있을까요?

일단, 제가 시도했던 방법 한가지는 다음과 같습니다.

   1 from django.core.urlresolvers import reverse
   2 def current_app_url():
   3     return reverse('app_c.views.v1')

위처럼 app_c.views.v1 을 가리키는 URL로 부터, 이름을 유추하여했으나, 간혹 찾지 못하는 경우가 생깁니다. (아마도 [Recursion] 관련오류인듯)

어떻게 깔끔하게 app_a 의 이름을 알 수 있을까요? 예컨데, 동작중인 urls.py 의 디렉토리명이면 되는데.. 어찌 그값을 가져올 수 있을지...

-- yong27 2007-11-27 17:27:52


장고 책 언제 나오나요?

  • 지금 다른 바쁜 일들로 좀 지연되고 있긴 하지만, 넉넉히 3개월안이면 마무리 될 듯 합니다. -- yong27 2007-04-15 10:48:55

    • 3개월안이라고 말씀드리긴 했으나,,, 또 다른 이유로, 무기한 지연될 예정입니다. 언제쯤 볼 수 있을지는 저 역시 의문 ㅡ.ㅡ.; -- yong27 2007-06-01 16:21:03


한글사용에 대해 질문하나 더 드릴께요. 현재 우분투 사용중이어서 콘솔한글환경은 UTF-8인데요, 템플릿엔진에 변수를 넘길때 '한글'을 넘기면 잘 나오는 반면에 u'한글' 또는 u'한글'.encode('UTF-8')하면 글씨가 깨지는 현상이 있습니다. 어떻게 해결할 수 있을까요?

  • [Python] 소스코드 상단에  # encoding:UTF-8  을 적으시고 해보세요. 그래도 안된다면, 최신 개발버전으로 해보세요. -- yong27 2007-02-27 20:17:13

# encoding:UTF-8을 넣으니 해결되었습니다. 감사합니다


프로젝트 생성시 가장 상단에 자동으로 생성되는 urls.py를 다음과 같이 고치고 테스트 했는데 다음과 같은 에러가 나옵니다.

   1 from django.conf.urls.defaults import *
   2 import datetime
   3 from django.shortcuts import render_to_response
   4 
   5 def current_datetime(request):
   6     now = datetime.datetime.now()
   7     return render_to_response('current_datetime.html', {'current_date': now})
   8 
   9 urlpatterns = patterns('',
  10     # Example:
  11     # (r'^test2/', include('test2.apps.foo.urls.foo')),
  12 
  13     # Uncomment this for admin:
  14     (r'^admin/', include('django.contrib.admin.urls')),
  15     (r'^test/', 'current_datetime'),
  16 )

ValueError at /test/
substring not found
Request Method:         GET
Request URL:    http://127.0.0.1:8000/test/
Exception Type:         ValueError
Exception Value:        substring not found
Exception Location:     /usr/lib/python2.4/site-packages/Django-0.95.1-py2.4.egg/django/core/urlresolvers.py in get_mod_func, line 23

substring에러라는데 어떤 에러인가요?

  • 'current_datetime' 함수에 작은따옴표를 빼 보세요~ -- yong27 2007-02-26 16:04:11

작은 따옴표를 제거했는데 이제는 이런 에러가 나오네요. 이런 문제가 생겼을때 질문할 수 있는곳이 있다는게 너무 감사할 따름입니다. 수고 하시고요. yong27님 파이썬광장에서의 사진은 꽤 인상적이었습니다.

AttributeError at /test/
'function' object has no attribute 'rindex'
Request Method:         GET
Request URL:    http://127.0.0.1:8000/test/
Exception Type:         AttributeError
Exception Value:        'function' object has no attribute 'rindex'
Exception Location:     /usr/lib/python2.4/site-packages/Django-0.95.1-py2.4.egg/django/core/urlresolvers.py in get_mod_func, line 23
  • 테스트해본 결과, 제 컴퓨터에서는 아무 이상없이 잘 동작했습니다. 다음의 순서대로 했어요. -- yong27 2007-02-27 13:55:37

    C:\work> \python25\lib\site-packages\django\bin\django-admin.py startproject django-test
    C:\work> cd django-test
    C:\work> gvim urls.py  # 윗소스대로 수정
    C:\work> gvim settings.py  # 윗소스만수정하면 template 경로를 못찾는다고 나옵니다. 그래서 ,TEMPLATE_DIRS에 해당경로를 추가합니다.
    C:\work> manage.py runserver  # 이후, 웹브라우저에서 보면 잘 보입니다.

결국 해결 했습니다 urls.py에서 함수를 직접 넘기는 것은 약간의 문제가 있는것 같아 보입니다. views.py파일안에 넣었더니 작 작동하는것을 확인할 수 있었습니다.

구글링 결과 다음과 같은 URL을 찾을수 있었습니다. http://www.nabble.com/'function'-object-has-no-attribute-'rindex'-t2884548.html 영어가 짧아 대략 읽어본 바로는 최신버전의 django를 사용해달라라는것 같은데 0.95.1버전이 최신버전 아닌가요?

  • 보통 최신버전은 개발버전을 의미하고요, [Subversion]으로 받으세요. [Django]사용자들은 주로 개발버전을 사용합니다. -- yong27 2007-02-27 20:17:13


인실리코젠이 장고 확산에 일등공신이라는 느낌이 듭니다. 앞으로 장고에 대해 세미나 혹은 강좌를 계획하고 계신것이 있나요?

  • 감사합니다. 특별하게 준비하는 강좌는 없지만, 조만간에 뭔가 나오긴 할 듯 합니다. -- yong27 2007-02-26 14:20:48


admin시스템을 사용하려고 설정을 하고 로그인을 했는데 다음과 같은 에러를 만났습니다

ProgrammingError at /admin/
(1146, "Table 'django_test.django_admin_log' doesn't exist")
Request Method:         GET
Request URL:    http://127.0.0.1:8000/admin/
Exception Type:         ProgrammingError
Exception Value:        (1146, "Table 'django_test.django_admin_log' doesn't exist")
Exception Location:     /usr/lib/python2.4/site-packages/MySQLdb/connections.py in defaulterrorhandler, line 35
Template error

In template /usr/lib/python2.4/site-packages/Django-0.95.1-py2.4.egg/django/contrib/admin/templates/admin/index.html, error at line 56

어떤 문제 때문인가요?

  • 새로운 어플리케이션을 추가하신 후에는 ./manage.py syncdb를 수행해주세요. -- falsetru 2007-02-13 22:33:30


계속 장고에 대해 질문하게 되네요 장고를 학습하기가 여의치 않습니다. django book과 공식 홈페이지의 문서를 참조중인데 완전히 독립된 [MVC]에 적응이 잘 안되네요. 어떻게 하면 장고를 효과적으로 학습할수 있을까요?

  • 일단 Django를 자유롭게 쓰시려면 [Python]에 익숙해지셔야 합니다. 따로 시간을 내셔서라도 [Python] 사용법을 완전히 익히시고요, [Django] 홈페이지의 튜토리얼을 몇번 그대로 따라하시면 웬만큼 하실 수 있을 듯 합니다. 그 다음에는 직접 자신만의 프로젝트를 하나 해보시기를 추천합니다. 마땅한 프로젝트가 없으시면, EnglishStudyWithDjango 프로젝트를 같이 하셔도 됩니다. 가장 효과적인 학습방법은 직접 무언가를 만들면서, 접해보는 것이라고 생각합니다. -- yong27 2007-02-12 10:51:52


Django기반으로된 게시판 혹은 블로그가 있을까요?

  • 아직 국내사용자가 많지 않아서, 국내서 개발된 것은 거의 없는 듯 합니다. [Google]서 검색해보면, 몇 개 정도 눈에 띄긴 하는데, 정식 패키지로 나와있기 보다는, 개별적으로 커스터마이징해서 쓰는 듯 합니다. http://code.djangoproject.com/wiki/DjangoPoweredSites 페이지를 보시면, [Django]를 쓰는 많은 사이트들을 볼 수 있습니다. -- yong27 2007-02-11 13:08:33


PHP로만 웹개발을 한지 6개월 된것 같습니다. 사실 PHP는 웹 개발을 위한 스크립트의 형식이 강해 본인의 의지에 의하지 않으면 스파게티코드 가 될수밖에 없는 구조를 가지고 있다고 생각됩니다. 그래서 요즘 체계적인 개발과 반복적인 작업을 줄이기 위한 방편으로 프레임워크를 알아보 다 Django를 찾게 되었습니다. 그러나 궁금한 점은 Django를 통해 원하는 개발을 모두 할 수 있는지 입니다. 예를 들어 쇼핑몰을 개발한다던가, 단순한 홈페이지 형식이 아닌 웹 어플리케이션([ERP]등등)이 가능하냐는 것입니다.

  • 물론 모두 가능합니다. [Django]가 원래 쇼핑몰같은 웹어플리케이션 같은 것들을 개발하려고 만들어진 것입니다. 최근의 웹기술들(예를 들어, [AJAX]등)도 모두 Django에서 구현이 가능합니다. -- yong27 2007-02-10 10:21:00

Django/QnA (last edited 2011-08-03 11:00:49 by localhost)

web biohackers.net