django
Installing psycopg2 on Mac 10.6.4 Snow Leopard
Setting up Django for use with Postgres 8.3. Django uses psycopg2 (or psycopg depending on what you choose). To the best of my knowledge psycopg2 v2.2.2 is the most stable version of the code.
easy_install "psycopg2=2.2.2"
Then edit your settings.py file for Django.
DATABASE_ENGINE = ‘postgresql_psycopg2’
Psycopg2 Error
The easy_install for psycopg2 didn’t work immediately because easy_install could not find pg_config and caused compile process failed. To fix the problem I needed my environment to have access to Postgres 8.3 pg_config. The default MacPorts install of Postgres 8.3 drops pg_config and other key files into /opt/local/lib/postgresql83/bin/ .
To allow your easy_install environment to see pg_config, simply symbolically link it to your ~/bin directory. It does not have to be ~/bin. It could be any directory on your environment path. Just pick something easy.
# symbolic link from MacPorts install of postgres to a path on my home dir. ln -s /opt/local/lib/postgresql83/bin/pg_config ~/bin/pg_config
I edited my .bash_profile so that the files in ~/bin is always on my environment path.
# set PATH so it includes user’s private bin if it exists
if [ -d ~/bin ] ; then
PATH=~/bin:"${PATH}"
fi
if [ -f /opt/local/etc/bash_completion ]; then
. /opt/local/etc/bash_completion
fiDjango RSS feed aggregators
The plan — integrate RSS feeds into my crappy car website. Re-syndicating many feeds from Autoblog.com (List of feeds)
Example
On the Toyota page of my site, display snippets from the Toyota feed.
Resources
Access settings.py variables from Django Templates
My goal is to conditionally include google analytics tracking on my Django templates depending on whether settings.DEBUG is on or off as defined in my settings.py file. To accomplish you can write a template context processor that returns the variable with the request context which will make the variable values readable in your Django Templates.
First, add a context_processors.py to the folder for your app (my app is called auto)
Next, copy and paste the function into context_processors.py. As you can see we are simply stuffing the settings variable onto the request object.
def debug_mode(request): from django.conf import settings return {‘debug_mode’: settings.DEBUG}
Now, we add our context processor to the TEMPLATE_CONTEXT_PROCESSORS section in settings.py. If you do not have this section, add it. It won’t break anything.
TEMPLATE_CONTEXT_PROCESSORS = ( ‘auto.context_processors.debug_mode’, )
Next we have to use the RequestContext. Add this import statement to views.py.
from django.template import RequestContext
Now, set context_instance for all of your template render calls.
def detail(request, template_name="myview.html"): return render_to_response(template_name, context, context_instance=RequestContext(request))
Finally, you can see if settings.DEBUG is True or False in your Django Templates!
{/span> if debug_mode } <h1>We are debugging!</h1> {/span> endif }
Reference: Django Tips: Template Context Processors
Recent blog posts
- Amazon S3 Website CNAME
- Button labels for checkout
- Insert html django contrib messages
- Twitter Bootstrap not working with LESS.js
- Javascript libs that offer basic subset of jquery features
- Building the donor-matic
- Playing with free Google Map alternatives.
- Some flows are not as complicated as they appear
- Form design crib sheet
- Script to get IE9 Windows Virtual PC images into Virtual Box