Geuis
Geuis

Reputation: 42277

How to pass a variable from settings.py to a view?

I'm getting the project path in my Django app in settings.py using:

PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))

I would like to use the PROJECT_PATH value in other views, such as for locating the path to files in my static path. How can I make this into an accessible variable?

Upvotes: 52

Views: 34229

Answers (3)

oruchkin
oruchkin

Reputation: 1295

  1. in settings.py add

    DOMAIN = "example.com"
    
  2. views.py

    from django.conf import settings
    
    DOMAIN = settings.DOMAIN
    
  3. lets try to output it:

    print(DOMAIN)
    
    print(type(DOMAIN))
    
  4. output will be:

    example.com
    
    <class 'str'>
    

Upvotes: 8

Muhammad Taqi
Muhammad Taqi

Reputation: 5424

from django.conf import settings as conf_settings
project_path = conf_settings.PROJECT_PATH

Upvotes: 31

AndiDog
AndiDog

Reputation: 70198

Use from django.conf import settings but mind that settings is not a module. The documentation clearly explains that and your use case.

Upvotes: 65

Related Questions