How do I print out the contents of my settings in a django shell?

后端 未结 5 1003
不思量自难忘°
不思量自难忘° 2021-01-30 12:41

When I run python manage.py shell, I can print out the python path

>>> import sys
>>> sys.path

What should I typ

相关标签:
5条回答
  • 2021-01-30 13:21

    I know that this is an old question, but with current versions of django (1.6+), you can accomplish this from the command line the following way:

    python manage.py diffsettings --all
    

    The result will show all of the settings including the defautls (denoted by ### in front of the settings name).

    0 讨论(0)
  • 2021-01-30 13:28

    To show all django settings (including default settings not specified in your local settings file):

    from django.conf import settings
    dir(settings)
    
    0 讨论(0)
  • 2021-01-30 13:36
    from django.conf import settings
    dir(settings)
    

    and then choose attribute from what dir(settings) have shown you to say:

    settings.name
    

    where name is the attribute that is of your interest

    Alternatively:

    settings.__dict__
    

    prints all the settings. But it prints also the module standard attributes, which may somewhat clutter the output.

    0 讨论(0)
  • 2021-01-30 13:40

    In your shell, you can call Django's built-in diffsettings:

    from django.core.management.commands import diffsettings
    
    output = diffsettings.Command().handle(default=None, output="hash", all=False)
    
    
    0 讨论(0)
  • 2021-01-30 13:44

    In case a newbie stumbles upon this question wanting to be spoon fed the way to print out the values for all settings:

    def show_settings():
        from django.conf import settings
        for name in dir(settings):
            print(name, getattr(settings, name))
    
    0 讨论(0)
提交回复
热议问题