AndrewO
AndrewO

Reputation: 1125

Error when developing template context processor

I'm in the midst of developing my first template context processor.

It's generating an error: Module "bookings.context_processors" does not define a "context_processors" attribute/class

I've followed a number of examples however this isn't making too much sense to me. Can someone tell me why this error is being generated?

Code's pretty simple:

context_processors.py:

from bookings.models import Booking, BookingItem

def injectBookingObject(request):
    try:
        booking = request.session['bookingID']
        bookingOptions = BookingItem.objects.all().filter(bookingID = booking)
        return {
            'bookingContents' : bookingOptions,
        }
    except:
        return {}

settings:

TEMPLATE_CONTEXT_PROCESSORS = (
    *** usual ones *****
    'bookings.context_processors'
)

views.py:

def activity_detail(request, slug):
    if request.method == 'GET':
        selectedactivity = get_object_or_404(Activity, urlKey=slug)
        activityMedia = ActivityMedia.objects.all().filter(
            Activity = selectedactivity, MediaStatus = 1,
            MediaActiveDate__lte=datetime.datetime.now(), 
            MediaInactiveDate__gte=datetime.datetime.now()
        ).exclude(MediaType = 'T').order_by('-MediaType', 'MediaSortOrder')

        activityOptions = ActivityOption.objects.all().filter(
            Activity = selectedactivity,
            ActivityOptionActiveDate__lte=datetime.datetime.now(), 
            ActivityOptionInactiveDate__gte=datetime.datetime.now()
        ) | ActivityOption.objects.all().filter(
                Activity = selectedactivity, 
                ActivityOptionActiveDate__lte=datetime.datetime.now(), 
                ActivityOptionInactiveDate=None
            )
        equipment = Equipment.objects.all().filter(
            activity = selectedactivity
        )
        instructor = User.objects.get(id=int(selectedactivity.Instructor.id))
        context = {
            'activity': selectedactivity,
            'activityMedia' : activityMedia,
            'activityOptions' : activityOptions,
            'activityEquipment' : equipment,
            'instructor' : instructor,
        }
        return render(
            request,
            'activities/activity.html',
            context
        )

Upvotes: 0

Views: 326

Answers (1)

warath-coder
warath-coder

Reputation: 2122

you need

TEMPLATE_CONTEXT_PROCESSORS = (
*** usual ones *****
    'bookings.context_processors.injectBookingObject'
)

Upvotes: 5

Related Questions