hi
i have this model called charity
___________________________________________
from django.db import models
from settings import DEFAULT_CHARITY_NAME as deafult_charity_name


class GetDefaultInstance(models.Manager):
    def get_default_instance(self):
        return 
super(Charity,self).get_query_set().filter(charity_name=default_charity_name)
   
    
class Charity(models.Model):
    class Meta:
        verbose_name_plural = 'Charities'
        app_label = 'charities'
    charity_name    = models.CharField(max_length=50)
    in_percentage   = models.IntegerField(help_text='default value is 0,\
                                          leave blank if you will enter 
fixed amount.', default=0, blank=True,null=True)
    fixed_amount    = models.IntegerField(help_text='default value is 0,\
                                          leave blank if you entered amount 
in percentage.',default=0, blank=True, null=True  )
    
    objects = models.Manager()
    default_instance = GetDefaultInstance()
    
    def __unicode__(self):
        return '%s'%self.charity_name

_______________________________-

in urls:
(r'^admin/charity_report/(?P<itemdetails_id>[-\w]+)/$', 
'charities.admin_views.report'),
__________________________________________

and another model called ItemDetails which have forignkey relation with 
above model, with  default instance of charity attached to each Itemdetail 
object .
I wanted to add admin button alongside history button so user can see 
amount charged as charity and stuff like percentage deduction,amount 
deducted etc.

i managed to show the button but when clicked at it gives this trace:
http://pastebin.com/03wscYLX

the settings is at: 
http://pastebin.com/7FYY189D

the other regular info are in:
http://pastebin.com/QmAdEeP9

its been 2-3 days trying to run it on apache server.. it works ok on local 
machine.

i override form_change template and provide the button, write urls for 
admin 

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/9Zu2zAew3aIJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

{% extends "admin/change_form.html" %} {% load mini_shop_tags %} {% load i18n %} {% block object-tools %} {% if change %}{% if not is_popup %} {% endif %}{% endif %} {% endblock %}
from charities.models import Charity, GetDefaultInstance
from django.template import RequestContext
from django.shortcuts import render_to_response
from django.contrib.admin.views.decorators import staff_member_required
from generoucity.mini_shop.extensions.deals.models import ItemDetails 
from generoucity.mini_shop.models import Item

class CharityReport(object):
    def __init__(self,request,itemdetails_id):
        self.request = request
        self.itemdetails_id = itemdetails_id
        
    def render_report(self):
        data = {}
        item = Item.objects.get(pk=self.itemdetails_id)
        itemdetail_obj  = ItemDetails.objects.get(item=item)
        charity_obj     = itemdetail_obj.charity
        if not type(charity_obj) is type('NoneType'):
            data['charity_name'] = charity_obj.charity_name
        else:
            data['charity_name'] = 'No charity is associated with this deal.'
        data['price'] = item.price
        if charity_obj.in_percentage:
            data['charity_category'] = 'Fixed Percentage: %s '%(charity_obj.in_percentage)
            data['charity_amount'] = (float(charity_obj.in_percentage)/100)*item.price
        else:
            data['charity_category'] = 'By Fixed Amount: %d'%(charity_obj.fixed_amount)
            data['charity_amount'] = charity_obj.fixed_amount
        data['item'] = item.name
        return render_to_response("admin/mini_shop/extensions/deals/charity_report.html",locals(),RequestContext(self.request,{}))
        
def report(request,itemdetails_id):
    charity_report_object = CharityReport(request, itemdetails_id)
    return charity_report_object.render_report()
    
    

report = staff_member_required(report)

from models import Charity
import datetime
from django.conf import settings

def charity_admin(request):
    charities = Charity.objects.all()            
    return {"charities": charities,}
    
from django.db import models
from settings import DEFAULT_CHARITY_NAME as deafult_charity_name


class GetDefaultInstance(models.Manager):
    def get_default_instance(self):
        return super(Charity,self).get_query_set().filter(charity_name=default_charity_name)
   
    
class Charity(models.Model):
    class Meta:
        verbose_name_plural = 'Charities'
        app_label = 'charities'
    charity_name    = models.CharField(max_length=50)
    in_percentage   = models.IntegerField(help_text='default value is 0,\
                                          leave blank if you will enter fixed amount.', default=0, blank=True,null=True)
    fixed_amount    = models.IntegerField(help_text='default value is 0,\
                                          leave blank if you entered amount in percentage.',default=0, blank=True, null=True  )
    
    objects = models.Manager()
    default_instance = GetDefaultInstance()
    
    def __unicode__(self):
        return '%s'%self.charity_name
    

    
    

    
    
from django.db import models
from generoucity.mini_shop.signals import post_cart_loaded, pre_item_added, pre_item_quantity_changed, order_payment,\
    order_status_changed
from generoucity.mini_shop.models import Order, OrderItem, Category
from django.contrib import messages
from django.conf import settings
from django.db.models.signals import pre_init, post_init
import datetime
from django.http import HttpResponseRedirect
from django.db.models.aggregates import Sum
import logging
import simplejson
import urllib
import json
from django.contrib.auth.models import User
from django.contrib.sites.models import Site
from generoucity.charities.models import Charity
#, GetDefaultInstance


    
#class AdOrder(models.Model):
#    user = models.ForeignKey(Advertiser)
#    created_on = models.DateTimeField(auto_now_add=True)
#    adpackage = models.ForeignKey(AdPackage)
    

class AdDuration(models.Model):
    name = models.CharField(max_length=100)
    value = models.IntegerField()
    def __unicode__(self):
        return self.name
    class Meta:
        app_label = "mini_shop"

class AdPackage(models.Model):
    name = models.CharField(max_length=255)
    slug = models.CharField(max_length=255, unique=True, blank=True)
    price = models.FloatField()
    duration = models.ForeignKey(AdDuration)
    free = models.BooleanField(default=False)
    days = models.IntegerField(blank=True, help_text="leave blank or enter 0 for unlimited days free (free must be checked)")
    price_after_trial = models.FloatField(blank=True)
    def __unicode__(self):
        return self.name + ' $' + str(int(self.price))

    class Meta:
        app_label = "mini_shop"
        
def get_cate():
    return Category.objects.get_or_create(name='deleted')[0]  
      
class Advertiser(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=255)
    image = models.ImageField(upload_to="images/advertisers/", blank=True, null=True)
    street1 = models.CharField(verbose_name="Street Address", max_length=255)
    street2 = models.CharField(verbose_name="(Line 2)", blank=True, max_length=255)
    city = models.CharField(max_length=255)
    state = models.CharField(max_length=100)
    zip = models.CharField(max_length=10)
    country = models.CharField(max_length=255, default="USA")
    phone = models.CharField(max_length=15)
    website = models.URLField(blank=True)
    email = models.EmailField(max_length=255, blank=True)
    about = models.TextField(blank=True)
    EIN = models.CharField(max_length=12, blank=True, null=True)
    private_address = models.BooleanField(default=False)
    adpackage = models.ForeignKey(AdPackage)
    start_date = models.DateField()
    expired = models.BooleanField(default=True)
    type = models.ForeignKey(Category, on_delete=models.SET(get_cate))
    def __unicode__(self):
        return self.name
    
    class Meta:
        app_label = "mini_shop"
        ordering = ("-id",) 

class AdTransaction(models.Model):
    amount = models.FloatField()
    created_on = models.DateTimeField(auto_now_add=True)
    user = models.ForeignKey(Advertiser)
    adpackage = models.ForeignKey(AdPackage)
    class Meta:
        app_label = "mini_shop"
    
class DealUser(models.Model):
    user = models.OneToOneField(User)
    street = models.CharField(max_length=255, blank=True, null=True)
    city = models.CharField(max_length=150, blank=True, null=True)
    state = models.CharField(max_length=150, blank=True, null=True)
    zip = models.CharField(max_length=10, blank=True, null=True)
    lat = models.CharField(max_length=150, blank=True, null=True)
    lng = models.CharField(max_length=150, blank=True, null=True)   
    email = models.EmailField(max_length=255, blank=True, null=True)
    
    def save(self):
        if not self.street:
            self.street = ''
        if not self.city:
            self.city = ''
        if not self.state:
            self.state = ''
        if not self.zip:
            self.zip = ''
            
        url = 'http://maps.googleapis.com/maps/api/geocode/json?'
        address = 'address=' + self.street.replace(" ", "+") + ',+' + self.city.replace(" ", "+") + ',+' + self.state.replace(" ", "+") + ',+' + self.zip.replace(" ", "+") + '&sensor=true' 
        search_url = url + address
        raw = urllib.urlopen(search_url)
        js = simplejson.load(raw)
        try:
    	    self.lat = js['results'][0]['geometry']['location']['lat']
    	    self.lng = js['results'][0]['geometry']['location']['lng']
    	except:
    	    pass
        super(DealUser, self).save()
    class Meta:
        app_label = "mini_shop"      
    
class OrderItemCode(models.Model):
    code = models.CharField(max_length=50, blank=True, null=True)
    redeemed = models.BooleanField(default=False)
    orderitem = models.ForeignKey(OrderItem)
    date_redeemed = models.DateTimeField(blank=True, null=True)
    qr = models.CharField(max_length=400)
    void = models.BooleanField(default=False)
    def save(self):
        site = Site.objects.get_current()
        print self.orderitem.item.details.advertiser.id
        loc_url = "http://%s/%s/%s"; % (site.domain,'merchant/redeem/' + str(self.orderitem.item.details.advertiser.id), self.code)
        loc_url = urllib.quote(loc_url)
        url = "https://chart.googleapis.com/chart?chs=%sx%s&cht=qr&chl=%s"; % (
            '300',
            '300',
            loc_url)
        self.qr = url
        super(OrderItemCode, self).save()

#def get_default_charity_object():
#    default_charity_object = Charity.default_instance.all()
#    return default_charity_object[0]

class ItemDetails(models.Model):
    
    class Meta:
        app_label = "mini_shop"
        verbose_name = "Item"
        verbose_name_plural = "Items"
        
    item = models.OneToOneField("mini_shop.Item", related_name="details")
    starts = models.DateField(blank=True, null=True)
    ends = models.DateField(blank=True, null=True)
    cost = models.FloatField(blank=True, null=True, 
        help_text="If not set, defaults to item's price")
    value = models.FloatField()
    minimum = models.IntegerField(blank=True, null=True, 
        help_text="the aggregate amount that must be ordered before any order is charged. "
        "(Note: Not supported on all sites. if you are unsure if your site supports this feature, please contact support)")
    maximum = models.IntegerField(blank=True, null=True, 
        help_text="the aggregate amount can be ordered before this offer becomes inactive.")
    advertiser = models.ForeignKey(Advertiser)
    sale_line = models.TextField(max_length=400)    
    experience_text = models.TextField(blank=True)
    fine_print = models.TextField(blank=True)
    max_quantity = models.PositiveSmallIntegerField(blank=True, null=True)
    ordered_quantity = models.PositiveSmallIntegerField(default=0, blank=True)
    lat = models.CharField(max_length=150, blank=True, null=True)
    lng = models.CharField(max_length=150, blank=True, null=True)   
    
    # added so each product will have a location
    street = models.CharField(max_length=255, blank=True, null=True)
    city = models.CharField(max_length=150, blank=True, null=True)
    state = models.CharField(max_length=150, blank=True, null=True)
    
    # Shouldn't this be generated at purchase?
    coupon_code = models.CharField(max_length=255, blank=True)
    
    redeem_by = models.DateField(blank=True, null=True)
    visable = models.BooleanField(default=False)
    charity = models.ForeignKey(Charity,null=True,blank=True)
    #save to query google for an address and get a lat and long data 
    def save(self):
	#import pdb;
	#pdb.set_trace()
        if not self.ordered_quantity:
            self.ordered_quantity = 0
        if not self.street and not self.city and not self.state:
            self.street = self.advertiser.street1
            self.city = self.advertiser.city
            self.state =  self.advertiser.state
	    
	
	self.charity = Charity.default_instance.all()[0]
        url = 'http://maps.googleapis.com/maps/api/geocode/json?'
        address = 'address=' + self.street.replace(" ", "+") + ',+' + self.city.replace(" ", "+") + ',+' + self.state.replace(" ", "+") + '&sensor=true' 
        search_url = url + address
        raw = urllib.urlopen(search_url)
        js = simplejson.load(raw)
	try:
	    self.lat = js['results'][0]['geometry']['location']['lat']
	    self.lng = js['results'][0]['geometry']['location']['lng']
        except:
	    pass
        super(ItemDetails, self).save()


    def __unicode__(self):
        return u"%s" % (self.id, )

    def percent_off(self):
        return ((self.value - self.original_price) / self.value) * 100
    
    def you_save(self):
        return self.value - self.original_price

    def get_cost(self):
        print self.cost, self.item.price
        return self.cost or self.item.price
    
    def deal_interval(self):
        now = datetime.datetime.now()
        tomorrow = datetime.datetime(self.ends.year, self.ends.month, self.ends.day)
        return tomorrow - now
    
    def purchased(self):
        p = OrderItem.objects.filter(
            item=self.item,
            order__created_on__gte=self.starts,
            order__created_on__lt=self.ends
        ).exclude(order__status__in=("shopping", "canceled")).aggregate(p=Sum("quantity"))["p"]
        return p or 0
        
    original_price = property(get_cost)
    
class FinePrint(models.Model):
    item = models.ForeignKey(ItemDetails)
    fine_print = models.CharField(max_length=255)    
    active = models.BooleanField(default=True)

def enforce_maximum(sender, order, former_status, **kwargs):
    """ if a item has a maximum, 
        it will be deactivated when the maximum is reached """
    if order.status == "ordered" and former_status == "shopping":
        for orderitem in order.orderitem_set.filter(item__details__maximum__gt=0):
            item = orderitem.item
            total = OrderItem.objects.filter(
                item=item,
                order__created_on__gte=item.details.starts,
                order__created_on__lt=item.details.ends
            ).exclude(order__status="shopping").aggregate(purchased=Sum("quantity"))["purchased"]
            if total >= item.details.maximum:
                item.active = False
                item.save()

def preserve_maximum(sender, orderitem, request, **kwargs):
    """ if a item has a maximum, 
        it will be deactivated when the maximum is reached """

    if orderitem.item.details.maximum:
        try:
            total = orderitem.item.details.purchased()

            if total >= orderitem.item.details.maximum:
                # maximum reached sorry
                orderitem.item.active = False;
                orderitem.item.save()
                orderitem.quantity = 0
                #orderitem.delete()

            elif orderitem.item.details.maximum < total + orderitem.quantity:
                max = orderitem.item.details.maximum - total
                orderitem.quantity = orderitem.item.details.maximum - total
                messages.add_message(request, messages.INFO, 'You may order up to %d of item: %s.' % (max, orderitem.item))
            
        except ItemDetails.DoesNotExist, ex:
            logging.info(ex)
            pass
        except Exception, ex:
            logging.info(ex)
            pass
    
#def preserve_limit(sender, orderitem, request, **kwargs):
#    try:
#        max = orderitem.item.details.max_quantity
#        if max != None and max < orderitem.quantity:
#            orderitem.quantity = max
#            messages.add_message(request, messages.INFO, 'You may order up to %d of item: %s.' % (max, orderitem.item))
#
#    except ItemDetails.DoesNotExist:
#        pass
#    except Exception, ex:
#        print ex
#        pass

def set_shipped(sender, order, amount, processor, request, **kwargs):
        
    if order.paid == order.total:
        # we don't have any shippable items so as soon as they are 
        # paid for, they get the email and it is shipped
        order.status = "shipped"
        order.save()
        
        # automatically add to the newsletter
        COLLECT_EMAIL = getattr(settings, "DEALS_COLLECT_EMAIL", True)
        if COLLECT_EMAIL and order.email and "newsletter" in settings.INSTALLED_APPS:
            from newsletter.models import Subscriber, Group
            subscriber, c = Subscriber.objects.get_or_create(
                email=order.email, defaults={"name": order.name})
        
            if "mini_shop.extensions.regions" in settings.INSTALLED_APPS:
                from mini_shop.extensions.regions.settings import COOKIE_NAME
                from mini_shop.extensions.regions.models import Region
                
                slug = request.COOKIES.get(COOKIE_NAME)
                try: 
                    region = Region.objects.get(slug=slug)
                    group, created = Group.objects.get_or_create(name=region.name)
                    subscriber.groups.add(group)
                except Exception, ex:
                    print ex
                    
def remove_old_deals(sender, request, cart, **kwargs):
    instance = cart
    #print instance.status
    if request.user and request.user.is_staff:
        return # staff are exempt
    if instance.status == "shopping":
        for orderitem in instance.orderitem_set.all():
            try:
                details = orderitem.item.details
                now = datetime.date.today()
                #print details.starts, now, details.ends
                if not (details.starts <= now and now < details.ends):
                #    print "delete"
                    orderitem.delete()
            except ItemDetails.DoesNotExist:
                pass
    
            
post_cart_loaded.connect(remove_old_deals)    
order_payment.connect(set_shipped)
#pre_item_added.connect(preserve_limit)
#pre_item_quantity_changed.connect(preserve_limit)
pre_item_quantity_changed.connect(preserve_maximum)
order_status_changed.connect(enforce_maximum)
   
import listeners
import os, sys
#from autosite.common_settings import *
# the default settings are set in common_settings. 
# This allows us to make changes to all settings pages easily and removes the
# amount of code that is needed in this settings file 

from django.conf.global_settings import LOGIN_URL
from django.conf import global_settings
TIME_ZONE = 'America/Boise'


SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = False

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com";, "http://example.com/media/";
MEDIA_URL = '/media/'

STATIC_URL = '/media/static/'


# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
# trailing slash.
# Examples: "http://foo.com/media/";, "/media/".
ADMIN_MEDIA_PREFIX = '/media/static/admin/'


DEBUG = True
THUMBNAIL_DEBUG = True
#if DEBUG:
#    SSL_REDIRECT = False
DIRNAME = os.path.dirname(__file__)

MEDIA_ROOT = os.path.join(DIRNAME, '..', 'media')
STATIC_ROOT = os.path.join(DIRNAME, '..', 'media', "static")
TEMPLATE_DIRS = (
    os.path.join(DIRNAME, 'templates'),
)

DATABASE_NAME = 'gen_db'
DATABASE_USER = 'root'
DATABASE_PASSWORD = 'v123'
DATABASE_ENGINE = 'django.db.backends.mysql'
DATABASE_HOST = ''


DATABASES = {
    'default': {
        'ENGINE': DATABASE_ENGINE,
        'NAME': DATABASE_NAME ,                    
        'USER': DATABASE_USER,                     
        'PASSWORD': DATABASE_PASSWORD,               
        'HOST': DATABASE_HOST,                          
    }
}

SECRET_KEY = '3=*_&x&utw9!k%)pi8#c5%$m@n++qp3yd2%8d$b8sb985xcs_u'
SHOP_TEST = False

if SHOP_TEST:
    PAYJUNCTION_USER = 'pj-ql-01'
    PAYJUNCTION_PASS = 'pj-ql-01p'
    PAYJUNCTION_TEST = True
else:
    PAYJUNCTION_USER = 'ebWhOkDgeg'
    PAYJUNCTION_PASS = 'qwy1VoXU3DwK'
    PAYJUNCTION_TEST = False

ROOT_URLCONF = 'generoucity.urls'

DEFAULT_FROM_EMAIL = 'generoucity <i...@generoucity.com>'
DEFAULT_CONTACT_EMAIL = 'generoucity <i...@generoucity.com>'

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.admin',
    'sorl.thumbnail',
    'south',
    'generoucity.newsletter',
    'django.contrib.comments',
    'django.contrib.messages',
    'django.contrib.flatpages',
    'django.contrib.humanize',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.staticfiles',
    'generoucity.mini_shop',
#    'generoucity.mini_shop.extensions.statistics',
#    'generoucity.mini_shop.extensions.addresses',
#    'generoucity.mini_shop.extensions.order_emails',
    'generoucity.mini_shop.extensions.deals',
    
    'generoucity.treemenus',
    'generoucity.social_auth',
    'generoucity.registration',
    'mptt',
    'captcha',
    'tinymce',
    'charities'
)

TEMPLATE_DIRS = (
    os.path.join(DIRNAME, 'templates'),

)


MIDDLEWARE_CLASSES = (
   'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.doc.XViewMiddleware',
    'generoucity.mini_shop.extensions.deals.middleware.LocationCookieMiddleware',
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',

)
TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'django.core.context_processors.request',
    'django.contrib.messages.context_processors.messages',
   # 'context_processors.generoucity.media',
    'generoucity.mini_shop.extensions.deals.context_processor.daily_deal',
    'generoucity.social_auth.context_processors.social_auth_by_type_backends',
    'generoucity.processor.flatpage',
    'generoucity.charities.context_processor.charity_admin'
)


AUTHENTICATION_BACKENDS = (
    'social_auth.backends.twitter.TwitterBackend',
    'social_auth.backends.facebook.FacebookBackend',
    'social_auth.backends.OpenIDBackend',
    'django.contrib.auth.backends.ModelBackend',
)

SOCIAL_AUTH_ENABLED_BACKENDS = ('facebook', 'twitter')
#SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/add-account/'
SOCIAL_AUTH_ASSOCIATE_BY_MAIL = False
TWITTER_CONSUMER_KEY         = '0tpH2f5anf1b1xXx03gUFA'
TWITTER_CONSUMER_SECRET      = 'o9RGmfP8koMFY6jAqCWMm9NmWmD90Z0nP8od17xM'
FACEBOOK_APP_ID              = '326097564069916'
FACEBOOK_API_SECRET          = '654bab8414fbbc0994e7822753f42f8a'
LOGIN_URL          = '/login/'
LOGIN_REDIRECT_URL = '/'
LOGIN_ERROR_URL    = '/login-error/'
FACEBOOK_AUTH_EXTRA_ARGUMENTS= {'scope': 'user_location,user_about_me,email'}

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
    'generoucity.loaders.load_template_from_app_or_theme',
    #'generoucity.loaders.load_template_source',
)
EVENTS_TO_SHOW = 5

VELOCITY_SITE = True

CAPTCHA = {
    'bgcolor': '#FFFFFF',
    'fgcolor': '#000000',
}


HTTPS_SUPPORT = False
HTTPS_PATHS = ['merchant/signup/', 'shop/cart/']
APPEND_SLASH = True

DEFAULT_CHARITY_NAME = 'Default_Charity'
#AUTHORIZE_LOGIN = u"8Bc7Wr4Fuh"
#AUTHORIZE_API_KEY = u"3M479w9YAq2zAU58"
#AUTHORIZE_TEST_MODE = False
#SESSION_COOKIE_AGE = 60 * 60 * 1 # one hours


#===============================================================================
# Allow generoucity.customizations such as adding default apps
#try:
#    from utils.update_settings import update
#    update(globals())
#except Exception, ex:
#    logging.error("Exception modifying default settings", exc_info=True)    
# end generoucity.customizations
#===============================================================================

# custom override settings hook
#from autosite.override_settings import *

#===============================================================================
# Allow local customizations such as overriding settings for development
#try:
#    from local_conf import update
#    update(globals())
#except:
#    pass
# end local customizations
#===============================================================================
#from urls import initialize_urls
#from generoucity.mini_shop.extensions.deals.forms import ExtendedCreditCardForm
from django.conf.urls.defaults import *
#from generoucity.mini_shop.extensions.authorize.views import authorize_form
from django.conf import settings
from generoucity.gen.forms import *
from django.contrib import admin
from django.template import add_to_builtins
from django.utils.importlib import import_module

def get_app_patterns(app, module, varname='defaultpatterns'):
    try:
        urls = import_module("%s.%s" % (app, module))
        default = getattr(urls, varname, ())
    except Exception, ex:
        if not str(ex).endswith(module):
            raise
        default = ()

    return default

admin.autodiscover()

add_to_builtins('templatetags.gen_tags')
add_to_builtins('sorl.thumbnail.templatetags.thumbnail')

urlpatterns = patterns('',
    (r'^admin/charity_report/(?P<itemdetails_id>[-\w]+)/$', 'charities.admin_views.report'),      
    url(r'^admin/', include(admin.site.urls)),
    #customize user registration form
    url(r'^accounts/', include('generoucity.registration.backends.default.urls')),
    url(r'^accounts/register/$', 'generoucity.registration.views.register',
        {
            'backend': 'generoucity.gen.regbackend.Backend',
            'form_class' : UserRegistrationForm
        },
        name='registration_register'
    ),
)
urlpatterns += get_app_patterns('generoucity.newsletter', 'admin_urls')
if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$',
                'django.views.static.serve',
                {'document_root': settings.MEDIA_ROOT}),
    ) 
urlpatterns += patterns('',
   # url(r'^captcha/', include('captcha.urls')),
)

urlpatterns += patterns('',
    url(r'^login/$', 'django.contrib.auth.views.login'),
    url(r'^contact/$', 'views.contact', name='contact'),
    url(r'^contact/success/$', 'django.views.generic.simple.direct_to_template',{'template': 'contact/success.html'}, name='contact-success'),
    
    url(r'^newsletter/', include('generoucity.newsletter.urls')),
    url(r'^', include('social_auth.urls')),
    url(r'^', include('generoucity.mini_shop.extensions.deals.urls')),
   # url(r'^', include('django.contrib.flatpages.urls')),   

      
    
)


urlpatterns += patterns('',
    
    #url(r'^daily-deal/authorize/$', authorize_form, {"form_class": ExtendedCreditCardForm}, name='shop-authorize-form'), 
    #url(r'^google018517712a9df8bf.html$', "django.views.generic.simple.direct_to_template", {"template": 'google018517712a9df8bf.html'}),

)
{% extends "admin/base_site.html" %} {% block title %}List of books by publisher{% endblock %} {% block content %}

Charity Associated with item "{{item.name}}"

{% for key,value in data.iteritems %}
  • {{key}}

  • {{value}}
{% endfor %}
{% endblock %}

Reply via email to