i have a weird problem.
Basically, in my settings.py file i have 4 variables
URL_MAIN = 'http://www.mysite'
URL_JOBS = 'http://jobs.mysite'
URL_CARS = 'http://cars.mysite'
URL_HOMES = 'http://homes.mysite'
In my views.py i have the usual:
from settings import *
I have 6 views calling them and just returning them to templates inside the context:
class CarsHp(TemplateView):
...
class JobsHp(TemplateView):
...
class HomesHp(TemplateView):
...
class CarsList(TemplateView):
...
class JobsList(TemplateView):
...
class HomesList(TemplateView):
...
which are being called in urls by
CarsList.as_view()
...
All of those views have the same statement:
context['URL_MAIN'] = URL_MAIN
...
for all 4 variables.
In templates i’m correctly getting all 4 of them, except for URL_MAIN, which “gets lost” in 2 of those 6 views. I’m accessing them with classical {{ URL_MAIN }} and i’ve been trying everything, from moving to renaming, but still that URL_MAIN doesn’t show up (i get empty string, no errors of sort) after being served from 2 of those views. All the functions basically share the same code (except for the querying and data processing part) and those settings’ variables are just being assigned and returned off. Not any sort of check nor modification. I’ve been trying with django’s shell, and i could always retrieve them.
We’re being served by apache, with some proxypassing configurations for the robots.txt file and static files. Nothing “serious”.
I’m not posting all the 6 views source codes just because they’re long and the relevant parts are all described above. But i can post them if you want,i just don’t know if it is actually useful since i’ve been triple checking all the sources for clashing on names or double declarations or incorrect use.
Thanks all in advance, this is really stunning my brain
Ideally, you should use template context processors for this. It will cut down your code and allow you to see exactly where the problem is.
Make a file in your projects called urls_context_processor.py (or similar) and put your variables in there:
and in your settings.py
now the urls variables will be automatically available in all your template, and you won’t need to hard code them into every view.