hdknr’s posterous

 
Filed under

django

 

django-pony sweatshirt

http://djangopony.com

Filed under  //   Django   django-pony  

Comments [0]

Amazon.co.jp: Practical Django Projects, Second Edition (Expert's Voice in Web Development): James Bennett: 洋書

Comments [0]

Amazon.co.jp: Pro Django (Expert's Voice in Web Development): Marty Alchin: 洋書

Comments [0]

Django: __call__(self,*args,**kwargs) でビューをクラスにまとめる

django-openidで使われていた技。知ってて当然なんですかね。django-openidはさらにURLConfを動的に作るとかしている。

urls.py


from django.conf.urls.defaults import *
from django import template
from django.http import HttpResponse
#
class Account(object):
    _t = '''<html><head><title>Account</title></head>
        <body>
        <h1> hello </h1>
        View is {{view}}.
        </body></html>
        '''
    def __init__(self):
        pass

    def __call__(self,request,*args,**kwargs ):
        return HttpResponse(
        template.Template(self._t).render(template.RequestContext(request,{'view': str(args)})))

urlpatterns = patterns('',
    (r'^account/(.*)', Account()),
)

Filed under  //   Django   URLConf  

Comments [0]

pinax : account 内部アプリケーションURL

登録/確認

^account/ ^signup/$
^account/ ^validate/$

ログイン/ログアウト

^account/ ^login/$
^account/ ^logout/$

パスワード操作

^account/ ^password_reset_key/(\w+)/$
^account/ ^password_change/$
^account/ ^password_set/$
^account/ ^password_delete/$
^account/ ^password_delete/done/$
^account/ ^password_reset/$

OpenID/RP

^account/ ^login/openid/$

プロファイル

^account/ ^email/$
^account/ ^confirm_email/(\w+)/$
^account/ ^timezone/$
^account/ ^language/$

サービス(Twitterとか)

^account/ ^other_services/$
^account/ ^other_services/remove/$

Filed under  //   account   Django   pinax   URLConf  

Comments [0]

Django : "/accounts" は初心者にはちょっとマジック。 django.conf.global_settings.py

(zn)hdknr@deblen:~/.ve/zn$ find lib/python2.5/site-packages/django/
-name "*.py" -exec grep -H accounts {} \;
lib/python2.5/site-packages/django/conf/global_settings.py:LOGIN_URL =
'/accounts/login/'
lib/python2.5/site-packages/django/conf/global_settings.py:LOGOUT_URL =
'/accounts/logout/'
lib/python2.5/site-packages/django/conf/global_settings.py:LOGIN_REDIRECT_URL
= '/accounts/profile/'

(zn)hdknr@deblen:~/.ve/zn$ grep -v "^#"
lib/python2.5/site-packages/django/conf/global_settings.py | grep -v "^$"
gettext_noop = lambda s: s
DEBUG = False
TEMPLATE_DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
USE_ETAGS = False
ADMINS = ()
INTERNAL_IPS = ()
TIME_ZONE = 'America/Chicago'
LANGUAGE_CODE = 'en-us'
LANGUAGES = (
('ar', gettext_noop('Arabic')),
('bn', gettext_noop('Bengali')),
('bg', gettext_noop('Bulgarian')),
('ca', gettext_noop('Catalan')),
('cs', gettext_noop('Czech')),
('cy', gettext_noop('Welsh')),
('da', gettext_noop('Danish')),
('de', gettext_noop('German')),
('el', gettext_noop('Greek')),
('en', gettext_noop('English')),
('es', gettext_noop('Spanish')),
('et', gettext_noop('Estonian')),
('es-ar', gettext_noop('Argentinean Spanish')),
('eu', gettext_noop('Basque')),
('fa', gettext_noop('Persian')),
('fi', gettext_noop('Finnish')),
('fr', gettext_noop('French')),
('ga', gettext_noop('Irish')),
('gl', gettext_noop('Galician')),
('hu', gettext_noop('Hungarian')),
('he', gettext_noop('Hebrew')),
('hi', gettext_noop('Hindi')),
('hr', gettext_noop('Croatian')),
('is', gettext_noop('Icelandic')),
('it', gettext_noop('Italian')),
('ja', gettext_noop('Japanese')),
('ka', gettext_noop('Georgian')),
('ko', gettext_noop('Korean')),
('km', gettext_noop('Khmer')),
('kn', gettext_noop('Kannada')),
('lv', gettext_noop('Latvian')),
('lt', gettext_noop('Lithuanian')),
('mk', gettext_noop('Macedonian')),
('nl', gettext_noop('Dutch')),
('no', gettext_noop('Norwegian')),
('pl', gettext_noop('Polish')),
('pt', gettext_noop('Portuguese')),
('pt-br', gettext_noop('Brazilian Portuguese')),
('ro', gettext_noop('Romanian')),
('ru', gettext_noop('Russian')),
('sk', gettext_noop('Slovak')),
('sl', gettext_noop('Slovenian')),
('sr', gettext_noop('Serbian')),
('sv', gettext_noop('Swedish')),
('ta', gettext_noop('Tamil')),
('te', gettext_noop('Telugu')),
('th', gettext_noop('Thai')),
('tr', gettext_noop('Turkish')),
('uk', gettext_noop('Ukrainian')),
('zh-cn', gettext_noop('Simplified Chinese')),
('zh-tw', gettext_noop('Traditional Chinese')),
)
LANGUAGES_BIDI = ("he", "ar", "fa")
USE_I18N = True
LOCALE_PATHS = ()
LANGUAGE_COOKIE_NAME = 'django_language'
MANAGERS = ADMINS
DEFAULT_CONTENT_TYPE = 'text/html'
DEFAULT_CHARSET = 'utf-8'
FILE_CHARSET = 'utf-8'
SERVER_EMAIL = 'root@localhost'
SEND_BROKEN_LINK_EMAILS = False
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql',
'sqlite3' or 'oracle'.
DATABASE_NAME = '' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with
sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
DATABASE_OPTIONS = {} # Set to empty dictionary for default.
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
INSTALLED_APPS = ()
TEMPLATE_DIRS = ()
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
)
TEMPLATE_STRING_IF_INVALID = ''
ADMIN_MEDIA_PREFIX = '/media/'
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
EMAIL_SUBJECT_PREFIX = '[Django] '
APPEND_SLASH = True
PREPEND_WWW = False
FORCE_SCRIPT_NAME = None
DISALLOWED_USER_AGENTS = ()
ABSOLUTE_URL_OVERRIDES = {}
ALLOWED_INCLUDE_ROOTS = ()
ADMIN_FOR = ()
IGNORABLE_404_STARTS = ('/cgi-bin/', '/_vti_bin', '/_vti_inf')
IGNORABLE_404_ENDS = ('mail.pl', 'mailform.pl', 'mail.cgi',
'mailform.cgi', 'favicon.ico', '.php')
SECRET_KEY = ''
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
MEDIA_ROOT = ''
MEDIA_URL = ''
FILE_UPLOAD_HANDLERS = (
'django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler',
)
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 # i.e. 2.5 MB
FILE_UPLOAD_TEMP_DIR = None
FILE_UPLOAD_PERMISSIONS = None
DATE_FORMAT = 'N j, Y'
DATETIME_FORMAT = 'N j, Y, P'
TIME_FORMAT = 'P'
YEAR_MONTH_FORMAT = 'F Y'
MONTH_DAY_FORMAT = 'F j'
TRANSACTIONS_MANAGED = False
from django import get_version
URL_VALIDATOR_USER_AGENT = "Django/%s (http://www.djangoproject.com)" %
get_version()
DEFAULT_TABLESPACE = ''
DEFAULT_INDEX_TABLESPACE = ''
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
SESSION_COOKIE_NAME = 'sessionid' # Cookie name. This can be whatever
you want.
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 # Age of cookie, in seconds
(default: 2 weeks).
SESSION_COOKIE_DOMAIN = None # A string like ".lawrence.com", or None
for standard domain cookie.
SESSION_COOKIE_SECURE = False # Whether the session cookie should be
secure (https:// only).
SESSION_COOKIE_PATH = '/' # The path of the session cookie.
SESSION_SAVE_EVERY_REQUEST = False # Whether to save the session data on
every request.
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether a user's session
cookie expires when the Web browser is closed.
SESSION_ENGINE = 'django.contrib.sessions.backends.db' # The module to
store session data
SESSION_FILE_PATH = None # Directory to store session files if using the
file session module. If None, the backend will use a sensible default.
CACHE_BACKEND = 'locmem://'
CACHE_MIDDLEWARE_KEY_PREFIX = ''
CACHE_MIDDLEWARE_SECONDS = 600
COMMENTS_ALLOW_PROFANITIES = False
PROFANITIES_LIST = ('asshat', 'asshead', 'asshole', 'cunt', 'fuck',
'gook', 'nigger', 'shit')
COMMENTS_BANNED_USERS_GROUP = None
COMMENTS_MODERATORS_GROUP = None
COMMENTS_SKETCHY_USERS_GROUP = None
COMMENTS_FIRST_FEW = 0
BANNED_IPS = ()
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
LOGIN_URL = '/accounts/login/'
LOGOUT_URL = '/accounts/logout/'
LOGIN_REDIRECT_URL = '/accounts/profile/'
PASSWORD_RESET_TIMEOUT_DAYS = 3
TEST_RUNNER = 'django.test.simple.run_tests'
TEST_DATABASE_NAME = None
TEST_DATABASE_CHARSET = None
TEST_DATABASE_COLLATION = None
FIXTURE_DIRS = ()

Filed under  //   accounts   Django  

Comments [0]

Django: django.contrib.auth.views.py

(zn)hdknr@deblen:~/.ve/zn$ grep def
lib/python2.5/site-packages/django/contrib/auth/views.py

ユーザーをログインさせます
def login(request, template_name='registration/login.html',
redirect_field_name=REDIRECT_FIELD_NAME):

ユーザをログアウトさせます。
def logout(request, next_page=None,
template_name='registration/logged_out.html',
redirect_field_name=REDIRECT_FIELD_NAME):


ユーザをログアウトさせてから、ログインページにリダイレクトします。
def logout_then_login(request, login_url=None):


ログインページにリダイレクトし、ログインに成功したら別の URL に戻れるよ
うにするためのビューです。
def redirect_to_login(next, login_url=None,
redirect_field_name=REDIRECT_FIELD_NAME):


ユーザがパスワードをリセットできるようにします。また、新たなパスワード
をメールで送信します。
def password_reset(request, is_admin_site=False,
template_name='registration/password_reset_form.html',


ユーザがパスワードをリセットした後のページを表示するためのビューです。
def password_reset_done(request,
template_name='registration/password_reset_done.html'):

def password_reset_confirm(request, uidb36=None, token=None,
template_name='registration/password_reset_confirm.html',

def password_reset_complete(request,
template_name='registration/password_reset_complete.html'):

ユーザがパスワードを変更できるようにします。
def password_change(request,
template_name='registration/password_change_form.html',

ユーザがパスワードを変更した後のページを表示するためのビューです。
def password_change_done(request,
template_name='registration/password_change_done.html'):

Filed under  //   authentication   Django  

Comments [0]

Django: Context Processors を定義してビューに渡す共通データを定義する

(pinax)hdknr@deblen:~/.ve/pinax/home$ django-admin.py startproject gao
(pinax)hdknr@deblen:~/.ve/pinax/home$ cd gao/

デフォルトビュー(index)とリクエストコンテキストプロセッサー(context_processor)を定義する。

(pinax)hdknr@deblen:~/.ve/pinax/home/gao$ vi urls.py
from django.conf.urls.defaults import *
from django import template
from django.http import HttpResponse

def context_processor(request):
    return {'gaored':'gaolion'}

def index(request):
    return HttpResponse(
        template.Template("""
        <html><head><title>Sample</title></head>
        <body>
        <h1> hello from {{ gaored }} </h1>
        My name is {{name}}.
        """
        ).render( template.RequestContext(request,{'name':'hdknr.com'}))
    )

urlpatterns = patterns('',
    (r'^', index),
)

(pinax)hdknr@deblen:~/.ve/pinax/home/gao$ vi settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    'urls.context_processor',
)

実行

(pinax)hdknr@deblen:~/.ve/pinax/home/gao$ python manage.py runserver 0.0.0.0:8000
Validating models...
0 errors found

Django version 1.0.4, using settings 'gao.settings'
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

Filed under  //   context_processors   Django   RequestContext  

Comments [0]

pinax : moved to github & install procedure revised

(pinax)hdknr@deblen:~/.ve/pinax/src$ git clone   git://github.com/pinax/pinax.git
Initialized empty Git repository in /home/hdknr/.ve/pinax/src/pinax/.git/
remote: Counting objects: 25385, done.
remote: Compressing objects: 100% (9758/9758), done.
remote: Total 25385 (delta 14434), reused 24709 (delta 13796)
Receiving objects: 100% (25385/25385), 13.29 MiB | 470 KiB/s, done.
Resolving deltas: 100% (14434/14434), done.

(pinax)hdknr@deblen:~/.ve/pinax/src$ pip install -r pinax/requirements/external_apps.txt
Downloading/unpacking django-openid==0.2.0 (from -r pinax/requirements/external_apps.txt (line 42))
  Downloading django-openid-0.2.0.tar.gz (82Kb): 82Kb downloaded
  Running setup.py egg_info for package django-openid
Downloading/unpacking django-friends==0.1.4 (from -r pinax/requirements/external_apps.txt (line 23))
  Downloading django-friends-0.1.4.tar.gz
  Running setup.py egg_info for package django-friends
Downloading/unpacking vobject==0.8.1c (from -r pinax/requirements/libs.txt (line 16))
  Downloading vobject-0.8.1c.tar.gz (59Kb): 59Kb downloaded
  Running setup.py egg_info for package vobject
Downloading/unpacking django-photologue==2.3 (from -r pinax/requirements/external_apps.txt (line 37))
  Downloading django-photologue-2.3.tar.gz (51Kb): 51Kb downloaded
  Running setup.py egg_info for package django-photologue
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
Downloading/unpacking django-pagination==1.0.5.1 (from -r pinax/requirements/external_apps.txt (line 12))
  Downloading django-pagination-1.0.5.1.tar.gz
  Running setup.py egg_info for package django-pagination
Downloading/unpacking django-oembed==0.1.0 (from -r pinax/requirements/external_apps.txt (line 25))
  Downloading django-oembed-0.1.0.tar.gz
  Running setup.py egg_info for package django-oembed
Downloading/unpacking django-uni-form==0.6.0 (from -r pinax/requirements/external_apps.txt (line 17))
  Downloading django-uni-form-0.6.0.tar.gz
  Running setup.py egg_info for package django-uni-form
    zip_safe flag not set; analyzing archive contents...

        Installed /home/hdknr/.ve/pinax/build/django-uni-form/setuptools_git-0.3.4-py2.5.egg
Downloading/unpacking django-mailer==0.1.0 (from -r pinax/requirements/external_apps.txt (line 22))
  Downloading django-mailer-0.1.0.tar.gz
  Running setup.py egg_info for package django-mailer
Downloading/unpacking django-sorting>=0.1 (from -r pinax/requirements/external_apps.txt (line 43))
  Downloading django-sorting-0.1.tar.gz
  Running setup.py egg_info for package django-sorting
Downloading/unpacking django-robots==0.6.1 (from -r pinax/requirements/external_apps.txt (line 13))
  Downloading django-robots-0.6.1.tar.gz
  Running setup.py egg_info for package django-robots
Downloading/unpacking django-threadedcomments==0.5.1 (from -r pinax/requirements/external_apps.txt (line 15))
  Downloading django-threadedcomments-0.5.1.tar.gz
  Running setup.py egg_info for package django-threadedcomments
Downloading/unpacking django-avatar==1.0.3 (from -r pinax/requirements/external_apps.txt (line 9))
  Downloading django-avatar-1.0.3.tar.gz
  Running setup.py egg_info for package django-avatar
Downloading/unpacking django-tagging==0.3 (from -r pinax/requirements/external_apps.txt (line 38))
  Downloading django-tagging-0.3.tar.gz
  Running setup.py egg_info for package django-tagging
Downloading/unpacking sorl==3.1 (from -r pinax/requirements/external_apps.txt (line 33))
  Downloading sorl-3.1.tar.gz
  Running setup.py egg_info for package sorl
Downloading/unpacking django-db-log==1.0.1 (from -r pinax/requirements/external_apps.txt (line 28))
  Downloading django-db-log-1.0.1.tar.gz
  Running setup.py egg_info for package django-db-log
Downloading/unpacking gdata==1.3.3 (from -r pinax/requirements/libs.txt (line 8))
  Downloading gdata-1.3.3.zip (1.2Mb): 1.2Mb downloaded
  Running setup.py egg_info for package gdata
Downloading/unpacking django-gravatar==0.1.0 (from -r pinax/requirements/external_apps.txt (line 21))
  Downloading django-gravatar-0.1.0.tar.gz
  Running setup.py egg_info for package django-gravatar
Downloading/unpacking python-yadis==1.1.0 (from -r pinax/requirements/libs.txt (line 12))
  Downloading python-yadis-1.1.0.tar.gz (192Kb): 192Kb downloaded
  Running setup.py egg_info for package python-yadis
Downloading/unpacking django-filter==0.5.1 (from -r pinax/requirements/external_apps.txt (line 36))
  Downloading django-filter-0.5.1.tar.gz
  Running setup.py egg_info for package django-filter
    warning: no files found matching '*' under directory 'django_filters/fixtures'
    warning: no files found matching '*' under directory 'django_filters/tests/templates/django_filters'
Downloading/unpacking django-timezones==0.1.4 (from -r pinax/requirements/external_apps.txt (line 18))
  Downloading django-timezones-0.1.4.tar.gz
  Running setup.py egg_info for package django-timezones
Downloading/unpacking django-dbtemplates==0.5.8 (from -r pinax/requirements/external_apps.txt (line 10))
  Downloading django-dbtemplates-0.5.8.tar.gz
  Running setup.py egg_info for package django-dbtemplates
Downloading/unpacking BeautifulSoup==3.0.7a (from -r pinax/requirements/libs.txt (line 17))
  Downloading BeautifulSoup-3.0.7a.tar.gz
  Running setup.py egg_info for package BeautifulSoup
Downloading/unpacking django-announcements==0.1.0 (from -r pinax/requirements/external_apps.txt (line 8))
  Downloading django-announcements-0.1.0.tar.gz
  Running setup.py egg_info for package django-announcements
Downloading/unpacking textile==2.1.3 (from -r pinax/requirements/libs.txt (line 15))
  Downloading textile-2.1.3.tar.gz
  Running setup.py egg_info for package textile
Requirement already satisfied (use --upgrade to upgrade): docutils==0.5 in /usr/lib/python2.5/site-packages (from -r pinax/requirements/libs.txt (line 1))
Downloading/unpacking django-locations==0.1.1 (from -r pinax/requirements/external_apps.txt (line 24))
  Downloading django-locations-0.1.1.tar.gz
  Running setup.py egg_info for package django-locations
Downloading/unpacking django-markup==0.3 (from -r pinax/requirements/external_apps.txt (line 30))
  Downloading django-markup-0.3.tar.gz (92Kb): 92Kb downloaded
  Running setup.py egg_info for package django-markup
    no previously-included directories found matching 'docs/_build/*'
Downloading/unpacking django-atomformat==0.1.1dev (from -r pinax/requirements/libs.txt (line 23))
  Downloading django-atomformat-0.1.1dev.tar.gz
  Running setup.py egg_info for package django-atomformat
Downloading/unpacking django-swaps==0.5.3 (from -r pinax/requirements/external_apps.txt (line 26))
  Downloading django-swaps-0.5.3.tar.gz
  Running setup.py egg_info for package django-swaps
    warning: no files found matching 'CONTRIBUTORS.txt'
Downloading/unpacking geopy==0.93dev-r0 (from -r pinax/requirements/libs.txt (line 21))
  Downloading geopy-0.93dev-r0.tar.gz (68Kb): 68Kb downloaded
  Running setup.py egg_info for package geopy
Downloading/unpacking creole==1.0.1 (from -r pinax/requirements/libs.txt (line 24))
  Downloading creole-1.0.1.tar.gz
  Running setup.py egg_info for package creole
Downloading/unpacking django-ajax-validation==0.1.3 (from -r pinax/requirements/external_apps.txt (line 7))
  Downloading django-ajax-validation-0.1.3.tar.gz
  Running setup.py egg_info for package django-ajax-validation
    zip_safe flag not set; analyzing archive contents...

        Installed /home/hdknr/.ve/pinax/build/django-ajax-validation/setuptools_git-0.3.4-py2.5.egg
Downloading/unpacking django-wikiapp==0.2.0 (from -r pinax/requirements/external_apps.txt (line 32))
  Downloading django-wikiapp-0.2.0.tar.gz
  Running setup.py egg_info for package django-wikiapp
Downloading/unpacking simplejson==2.0.9 (from -r pinax/requirements/libs.txt (line 14))
  Downloading simplejson-2.0.9.tar.gz (115Kb): 115Kb downloaded
  Running setup.py egg_info for package simplejson
Downloading/unpacking django-notification==0.1.4 (from -r pinax/requirements/external_apps.txt (line 11))
  Downloading django-notification-0.1.4.tar.gz
  Running setup.py egg_info for package django-notification
Downloading/unpacking Django==1.0.4 (from -r pinax/requirements/libs.txt (line 18))
  Downloading Django-1.0.4.tar.gz (5.1Mb): 5.1Mb downloaded
  Running setup.py egg_info for package Django
Downloading/unpacking django-extensions==0.4.1 (from -r pinax/requirements/external_apps.txt (line 16))
  Downloading django-extensions-0.4.1.tar.gz (94Kb): 94Kb downloaded
  Running setup.py egg_info for package django-extensions
Downloading/unpacking pytz==2009l (from -r pinax/requirements/libs.txt (line 13))
  Downloading pytz-2009l.tar.bz2 (174Kb): 174Kb downloaded
  Running setup.py egg_info for package pytz
    warning: no files found matching '*.pot' under directory 'pytz'
    warning: no previously-included files found matching 'test_zdump.py'
Downloading/unpacking template-utils==0.4p2 (from -r pinax/requirements/external_apps.txt (line 44))
  Downloading template_utils-0.4p2.tar.gz
  Running setup.py egg_info for package template-utils
Downloading/unpacking python-dateutil>=1.1 (from -r pinax/requirements/libs.txt (line 6))
  Downloading python-dateutil-1.4.1.tar.gz (225Kb): 225Kb downloaded
  Running setup.py egg_info for package python-dateutil
Downloading/unpacking python-openid==2.2.4 (from -r pinax/requirements/libs.txt (line 10))
  Downloading python-openid-2.2.4.tar.gz (409Kb): 409Kb downloaded
  Running setup.py egg_info for package python-openid
Downloading/unpacking django-flag==0.1.1 (from -r pinax/requirements/external_apps.txt (line 27))
  Downloading django-flag-0.1.1.tar.gz
  Running setup.py egg_info for package django-flag
Downloading/unpacking diff-match-patch==20090804 (from -r pinax/requirements/libs.txt (line 22))
  Downloading diff-match-patch-20090804.tar.gz
  Running setup.py egg_info for package diff-match-patch
Downloading/unpacking django-frontendadmin==0.4 (from -r pinax/requirements/external_apps.txt (line 35))
  Downloading django-frontendadmin-0.4.tar.gz
  Running setup.py egg_info for package django-frontendadmin
Downloading/unpacking Markdown==2.0.1 (from -r pinax/requirements/libs.txt (line 19))
  Downloading Markdown-2.0.1.tar.gz (71Kb): 71Kb downloaded
  Running setup.py egg_info for package Markdown
Downloading/unpacking ybrowserauth==1.2 (from -r pinax/requirements/libs.txt (line 20))
  Downloading ybrowserauth-1.2.zip
  Running setup.py egg_info for package ybrowserauth
Downloading/unpacking django-voting==0.1-pre (from -r pinax/requirements/external_apps.txt (line 41))
  Downloading django-voting-0.1-pre.tar.gz
  Running setup.py egg_info for package django-voting
Downloading/unpacking django-bookmarks==0.1.0 (from -r pinax/requirements/external_apps.txt (line 19))
  Downloading django-bookmarks-0.1.0.tar.gz
  Running setup.py egg_info for package django-bookmarks
Downloading/unpacking django-email-confirmation==0.1.4 (from -r pinax/requirements/external_apps.txt (line 20))
  Downloading django-email-confirmation-0.1.4.tar.gz
  Running setup.py egg_info for package django-email-confirmation
Downloading/unpacking django-staticfiles==0.1.2 (from -r pinax/requirements/external_apps.txt (line 45))
  Downloading django-staticfiles-0.1.2.tar.gz
  Running setup.py egg_info for package django-staticfiles
Downloading/unpacking django-debug-toolbar==0.8.1 (from -r pinax/requirements/external_apps.txt (line 46))
  Downloading django-debug-toolbar-0.8.1.tar.gz (70Kb): 70Kb downloaded
  Running setup.py egg_info for package django-debug-toolbar
Downloading/unpacking python-twitter==0.6 (from -r pinax/requirements/libs.txt (line 11))
  Downloading python-twitter-0.6.tar.gz (81Kb): 81Kb downloaded
  Running setup.py egg_info for package python-twitter
Downloading/unpacking Pygments==1.0 (from -r pinax/requirements/libs.txt (line 9))
  Downloading Pygments-1.0.tar.gz (930Kb): 930Kb downloaded
  Running setup.py egg_info for package Pygments
Downloading/unpacking django-messages==0.4.2 (from -r pinax/requirements/external_apps.txt (line 14))
  Downloading django-messages-0.4.2.tar.gz
  Running setup.py egg_info for package django-messages
Downloading/unpacking django-generic-flatblocks==0.3.0 (from -r pinax/requirements/external_apps.txt (line 34))
  Downloading django-generic-flatblocks-0.3.0.zip
  Running setup.py egg_info for package django-generic-flatblocks
Downloading/unpacking django-microblogging==0.1.2 (from -r pinax/requirements/external_apps.txt (line 31))
  Downloading django-microblogging-0.1.2.tar.gz
  Running setup.py egg_info for package django-microblogging
Downloading/unpacking django-attachments==0.3 (from -r pinax/requirements/external_apps.txt (line 29))
  Downloading django-attachments-0.3.tar.gz (65Kb): 65Kb downloaded
  Running setup.py egg_info for package django-attachments
    warning: no files found matching '*' under directory 'attachments/fixtures'
Downloading/unpacking elementtree (from gdata==1.3.3->-r pinax/requirements/libs.txt (line 8))
  Downloading elementtree-1.2.7-20070827-preview.zip (64Kb): 64Kb downloaded
  Running setup.py egg_info for package elementtree
Requirement already satisfied (use --upgrade to upgrade): setuptools in /home/hdknr/.ve/pinax/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg (from python-twitter==0.6->-r pinax/requirements/libs.txt (line 11))
Installing collected packages: BeautifulSoup, creole, diff-match-patch, Django, django-ajax-validation, django-announcements, django-atomformat, django-attachments, django-avatar, django-bookmarks, django-db-log, django-dbtemplates, django-debug-toolbar, django-email-confirmation, django-extensions, django-filter, django-flag, django-friends, django-frontendadmin, django-generic-flatblocks, django-gravatar, django-locations, django-mailer, django-markup, django-messages, django-microblogging, django-notification, django-oembed, django-openid, django-pagination, django-photologue, django-robots, django-sorting, django-staticfiles, django-swaps, django-tagging, django-threadedcomments, django-timezones, django-uni-form, django-voting, django-wikiapp, elementtree, gdata, geopy, Markdown, Pygments, python-dateutil, python-openid, python-twitter, python-yadis, pytz, simplejson, sorl, template-utils, textile, vobject, ybrowserauth
  Found existing installation: BeautifulSoup 3.1.0.1
    Not uninstalling BeautifulSoup at /usr/lib/python2.5/site-packages/BeautifulSoup-3.1.0.1-py2.5.egg, outside environment /home/hdknr/.ve/pinax
  Running setup.py install for BeautifulSoup
  Running setup.py install for creole
    changing mode of build/scripts-2.5/creole2html.py from 644 to 755
    changing mode of /home/hdknr/.ve/pinax/bin/creole2html.py to 755
  Running setup.py install for diff-match-patch
  Found existing installation: Django 1.1.1
    Uninstalling Django:
      Successfully uninstalled Django
  Running setup.py install for Django
    changing mode of build/scripts-2.5/django-admin.py from 644 to 755
    changing mode of /home/hdknr/.ve/pinax/bin/django-admin.py to 755
  Running setup.py install for django-ajax-validation
  Running setup.py install for django-announcements
  Running setup.py install for django-atomformat
  Running setup.py install for django-attachments
    warning: no files found matching '*' under directory 'attachments/fixtures'
  Running setup.py install for django-avatar
  Running setup.py install for django-bookmarks
  Running setup.py install for django-db-log
  Running setup.py install for django-dbtemplates
  Found existing installation: django-debug-toolbar 0.7.0
    Not uninstalling django-debug-toolbar at /usr/lib/python2.5/site-packages/django_debug_toolbar-0.7.0-py2.5.egg, outside environment /home/hdknr/.ve/pinax
  Running setup.py install for django-debug-toolbar
  Running setup.py install for django-email-confirmation
  Running setup.py install for django-extensions
  Running setup.py install for django-filter
    warning: no files found matching '*' under directory 'django_filters/fixtures'
    warning: no files found matching '*' under directory 'django_filters/tests/templates/django_filters'
  Running setup.py install for django-flag
  Running setup.py install for django-friends
  Running setup.py install for django-frontendadmin
  Running setup.py install for django-generic-flatblocks
  Running setup.py install for django-gravatar
  Running setup.py install for django-locations
  Running setup.py install for django-mailer
  Running setup.py install for django-markup
    no previously-included directories found matching 'docs/_build/*'
  Running setup.py install for django-messages
  Running setup.py install for django-microblogging
  Running setup.py install for django-notification
  Running setup.py install for django-oembed
  Running setup.py install for django-openid
  Running setup.py install for django-pagination
  Running setup.py install for django-photologue
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
  Running setup.py install for django-robots
  Running setup.py install for django-sorting
  Running setup.py install for django-staticfiles
  Running setup.py install for django-swaps
    warning: no files found matching 'CONTRIBUTORS.txt'
  Running setup.py install for django-tagging
  Running setup.py install for django-threadedcomments
  Running setup.py install for django-timezones
  Running setup.py install for django-uni-form
  Running setup.py install for django-voting
  Running setup.py install for django-wikiapp
  Running setup.py install for elementtree
  Running setup.py install for gdata
  Running setup.py install for geopy
  Running setup.py install for Markdown
    changing mode of build/scripts-2.5/markdown from 644 to 755
    changing mode of /home/hdknr/.ve/pinax/bin/markdown to 755
  Found existing installation: Pygments 0.10
    Not uninstalling Pygments at /var/lib/python-support/python2.5, outside environment /home/hdknr/.ve/pinax
  Running setup.py install for Pygments
    Installing pygmentize script to /home/hdknr/.ve/pinax/bin
  Running setup.py install for python-dateutil
  Running setup.py install for python-openid
  Running setup.py install for python-twitter
  Running setup.py install for python-yadis
  Running setup.py install for pytz
    warning: no files found matching '*.pot' under directory 'pytz'
    warning: no previously-included files found matching 'test_zdump.py'
  Running setup.py install for simplejson
    building 'simplejson._speedups' extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -c simplejson/_speedups.c -o build/temp.linux-i686-2.5/simplejson/_speedups.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/simplejson/_speedups.o -o build/lib.linux-i686-2.5/simplejson/_speedups.so
  Running setup.py install for sorl
  Running setup.py install for template-utils
  Running setup.py install for textile
  Running setup.py install for vobject
    Installing change_tz script to /home/hdknr/.ve/pinax/bin
    Installing ics_diff script to /home/hdknr/.ve/pinax/bin
  Running setup.py install for ybrowserauth
Successfully installed BeautifulSoup creole diff-match-patch Django django-ajax-validation django-announcements django-atomformat django-attachments django-avatar django-bookmarks django-db-log django-dbtemplates django-debug-toolbar django-email-confirmation django-extensions django-filter django-flag django-friends django-frontendadmin django-generic-flatblocks django-gravatar django-locations django-mailer django-markup django-messages django-microblogging django-notification django-oembed django-openid django-pagination django-photologue django-robots django-sorting django-staticfiles django-swaps django-tagging django-threadedcomments django-timezones django-uni-form django-voting django-wikiapp elementtree gdata geopy Markdown Pygments python-dateutil python-openid python-twitter python-yadis pytz simplejson sorl template-utils textile vobject ybrowserauth

(pinax)hdknr@deblen:~/.ve/pinax/src$ cd ..
(pinax)hdknr@deblen:~/.ve/pinax$ mkdir home
(pinax)hdknr@deblen:~/.ve/pinax$ cd home

virtualenv を作り直す。

(pinax)hdknr@deblen:~/.ve/pinax/home$ deactivate
hdknr@deblen:~/.ve/pinax/home$ python ../src/pinax/scripts/pinax-boot.py $WORKON_HOME/pinax
Overwriting /home/hdknr/.ve/pinax/lib/python2.5/site.py with new content
New python executable in /home/hdknr/.ve/pinax/bin/python
Overwriting /home/hdknr/.ve/pinax/lib/python2.5/distutils/__init__.py with new content
Installing setuptools........................done.
Overwriting /home/hdknr/.ve/pinax/bin/activate with new content
Installing setuptools-dummy 0.0.3
Installing setuptools-git 0.3.4
Installing Django 1.0.4
Cannot locate a VERSION file for release. You are likely not running from a release tarball. Perhaps you meant to use --development

hdknr@deblen:~/.ve/pinax/home$ python ../src/pinax/scripts/pinax-boot.py $WORKON_HOME/pinax --development
New python executable in /home/hdknr/.ve/pinax/bin/python
Installing setuptools.............done.
Installing setuptools-dummy 0.0.3
Installing setuptools-git 0.3.4
Installing Django 1.0.4
Going to setup a Pinax development environment.
Found Pinax in /home/hdknr/.ve/pinax/src/pinax. Updating
Already up-to-date.
  Installing Pinax
  Installing pinax-admin script to /home/hdknr/.ve/pinax/bin
Please follow the documentation to continue.

hdknr@deblen:~/.ve/pinax/home$ workon pinax

(pinax)hdknr@deblen:~/.ve/pinax/home$ pinax-admin clone_project -l | grep "project:"
social_project:
sample_group_project:
private_beta_project:
intranet_project:
basic_project:
code_project:
static_project:

(pinax)hdknr@deblen:~/.ve/pinax/home$ pinax-admin clone_project social_project mysite
Copying your project to its new location
Updating settings.py for your new project
Renaming and updating your deployment files
Finished cloning your project, now you may enjoy Pinax!

(pinax)hdknr@deblen:~/.ve/pinax/home/mysite$ echo "drop database mysite" | ~/bin/MySQL/q.sh -r mysql
SERVER=localhost DATABASE=mysql DBUSER=root DBPWD=hdknr

(pinax)hdknr@deblen:~/.ve/pinax/home/mysite$ ~/bin/MySQL/createdb.sh mysite
Distribution is Debian.
Apache is apache2.
SERVER=localhost DATABASE=mysite DBUSER=mysite DBPWD=mysite
mysite

(pinax)hdknr@deblen:~/.ve/pinax/home/mysite$ vi settings.py

(pinax)hdknr@deblen:~/.ve/pinax/home/mysite$ grep DATABASE settings.pyDATABASE_ENGINE = 'mysql'    # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'mysite'       # Or path to database file if using sqlite3.
DATABASE_USER = 'mysite'             # Not used with sqlite3.
DATABASE_PASSWORD = 'mysite'         # Not used with sqlite3.
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.

(pinax)hdknr@deblen:~/.ve/pinax/home/mysite$ python manage.py syncdb
Creating table auth_permission
Creating table auth_group
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table notification_noticetype
Creating table notification_noticesetting
Creating table notification_notice
Creating table notification_noticequeuebatch
Creating table notification_observeditem
Creating table emailconfirmation_emailaddress
Creating table emailconfirmation_emailconfirmation
Creating table robots_url
Creating table robots_rule
Creating table friends_contact
Creating table friends_friendship
Creating table friends_joininvitation
Creating table friends_friendshipinvitation
Creating table friends_friendshipinvitationhistory
Creating table mailer_message
Creating table mailer_dontsendentry
Creating table mailer_messagelog
Creating table messages_message
Creating table announcements_announcement
Creating table oembed_providerrule
Creating table oembed_storedoembed
Creating table threadedcomments_threadedcomment
Creating table threadedcomments_freethreadedcomment
Creating table threadedcomments_testmodel
Creating table wiki_article
Creating table wiki_changeset
Creating table swaps_offer
Creating table swaps_swap
Creating table votes
Creating table tagging_tag
Creating table tagging_taggeditem
Creating table bookmarks_bookmark
Creating table bookmarks_bookmarkinstance
Creating table blog_post
Creating table photologue_gallery
Creating table photologue_galleryupload
Creating table photologue_photo
Creating table photologue_photoeffect
Creating table photologue_watermark
Creating table photologue_photosize
Creating table avatar_avatar
Creating table flag_flaggedcontent
Creating table flag_flaginstance
Creating table microblogging_tweet
Creating table microblogging_tweetinstance
Creating table microblogging_following
Creating table locations_location
Creating table profiles_profile
Creating table account_account
Creating table account_otherserviceinfo
Creating table account_passwordreset
Creating table signup_codes_signupcode
Creating table signup_codes_signupcoderesult
Creating table tribes_tribe
Creating table photos_photoset
Creating table photos_image
Creating table photos_pool
Creating table topics_topic
Creating table django_admin_log
Creating table djangodblog_errorbatch
Creating table djangodblog_error
Creating table django_openid_nonce
Creating table django_openid_association
Creating table django_openid_useropenidassociation

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes

Username (Leave blank to use 'hdknr'): hdknr
E-mail address: hdknr@hdknr.deb
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Permission model
Installing index for auth.Message model
Installing index for notification.NoticeSetting model
Installing index for notification.Notice model
Installing index for notification.ObservedItem model
Installing index for emailconfirmation.EmailAddress model
Installing index for emailconfirmation.EmailConfirmation model
Installing index for friends.Contact model
Installing index for friends.Friendship model
Installing index for friends.JoinInvitation model
Installing index for friends.FriendshipInvitation model
Installing index for friends.FriendshipInvitationHistory model
Installing index for messages.Message model
Installing index for announcements.Announcement model
Installing index for threadedcomments.ThreadedComment model
Installing index for threadedcomments.FreeThreadedComment model
Installing index for wiki.Article model
Installing index for wiki.ChangeSet model
Installing index for swaps.Offer model
Installing index for swaps.Swap model
Installing index for voting.Vote model
Installing index for tagging.TaggedItem model
Installing index for bookmarks.Bookmark model
Installing index for bookmarks.BookmarkInstance model
Installing index for blog.Post model
Installing index for photologue.GalleryUpload model
Installing index for photologue.Photo model
Installing index for photologue.PhotoSize model
Installing index for avatar.Avatar model
Installing index for flag.FlaggedContent model
Installing index for flag.FlagInstance model
Installing index for microblogging.Tweet model
Installing index for microblogging.TweetInstance model
Installing index for microblogging.Following model
Installing index for locations.Location model
Installing index for account.OtherServiceInfo model
Installing index for account.PasswordReset model
Installing index for signup_codes.SignupCode model
Installing index for signup_codes.SignupCodeResult model
Installing index for tribes.Tribe model
Installing index for photos.Image model
Installing index for photos.Pool model
Installing index for topics.Topic model
Installing index for admin.LogEntry model
Installing index for djangodblog.ErrorBatch model
Installing index for djangodblog.Error model
Installing index for django_openid.UserOpenidAssociation model
Installing json fixture 'initial_data' from '/home/hdknr/.ve/pinax/lib/python2.5/site-packages/oembed/fixtures'.
Installing json fixture 'initial_data' from '/home/hdknr/.ve/pinax/src/pinax/pinax/apps/photos/fixtures'.
Installed 18 object(s) from 2 fixture(s)

(pinax)hdknr@deblen:~/.ve/pinax/home/mysite$ python manage.py runserver 0.0.0.0:8000
Validating models...
0 errors found

Django version 1.0.4, using settings 'mysite.settings'
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
Validating models...
0 errors found

Django version 1.0.4, using settings 'mysite.settings'
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.


Filed under  //   Django   github   pinax   virtualenv  

Comments [1]

Django: models.Manager : Wordpressの特定のタグの記事を取得

いくら複雑な条件でも、 select * from aModelTable だったら、
self.model(**dict(zip(カラム名一覧,リザルトセット))) でモデルできるよう
です。
注意は"ID"は小文字って事ですね。(WpPostsのidをIDにすればいいのかな)。

from django.db import models

class WpPostsManager(models.Manager):
def tagged_list(self, tag ):
sql='''
SELECT SQL_CALC_FOUND_ROWS wp_posts.*
FROM wp_posts
INNER JOIN wp_term_relationships
ON (wp_posts.ID = wp_term_relationships.object_id)
INNER JOIN wp_term_taxonomy
ON (wp_term_relationships.term_taxonomy_id =
wp_term_taxonomy.term_taxonomy_id)
INNER JOIN wp_terms
ON (wp_term_taxonomy.term_id = wp_terms.term_id)
WHERE 1=1
AND wp_term_taxonomy.taxonomy = 'post_tag'
AND wp_terms.slug IN ('%s')
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')
GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10
'''
import MySQLdb
cursor = MySQLdb.connect(
db="wordpress",user="wordpress",passwd="wordpress" ).cursor()
cursor.execute( sql % tag )
column_names = [d[0] for d in cursor.description ]
column_names[0]='id'
return [ self.model(**dict(zip(column_names , r)) ) for r in
cursor.fetchall()]

class WpPosts(models.Model):
id = models.IntegerField(db_column='ID') # Field name made lowercase.
post_author = models.IntegerField()
post_date = models.DateTimeField()
post_date_gmt = models.DateTimeField()
post_content = models.TextField()
post_title = models.TextField()
post_excerpt = models.TextField()
post_status = models.CharField(max_length=60)
comment_status = models.CharField(max_length=60)
ping_status = models.CharField(max_length=60)
post_password = models.CharField(max_length=60)
post_name = models.CharField(max_length=600)
to_ping = models.TextField()
pinged = models.TextField()
post_modified = models.DateTimeField()
post_modified_gmt = models.DateTimeField()
post_content_filtered = models.TextField()
post_parent = models.IntegerField()
guid = models.CharField(max_length=765)
menu_order = models.IntegerField()
post_type = models.CharField(max_length=60)
post_mime_type = models.CharField(max_length=300)
comment_count = models.IntegerField()
class Meta:
db_table = u'wp_posts'
#
objects = models.Manager()
cobj = WpPostsManager()

(rp)hdknr@deblen:~/.ve/rp/src/wp/wpfeed$ python manage.py shell
Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from wordpress.models import *
>>> WpPosts.cobj.tagged_list('thrudb')[0].post_title
'ThruDB'

Filed under  //   Django   Manager   Model   wordpress  

Comments [0]