Version 4 (modified by Cal Leeming, 8 years ago) (diff)

Added some filler and some prelim ideas for this topic.


The django-users@… is the primary source for help on using Django. However many users are unable to get full mileage from the list as they are inexperienced in formulating their questions and in interacting with the list members. This page seeks to address this problem. Many members of the list, including core developers, take a lot of time and trouble to patiently answer questions asked, and we users should take as much trouble to ask properly formulated questions. Try to follow the steps outlined below to make for a more pleasant and rewarding experience on the list.

Classify your question

Do your homework!!

  • Most of the time, Google holds the answer to your question.
  • Don't expect a 'one-shot / copy-and-paste' answer, there may be some work involved.
  • Don't give up on the first page, it's not unusual to go as far as 400-600 results (depending on how relevant each hit is)
  • Make full use of exception tracebacks, and don't be afraid to dive deep into the Django core code (this is a great way to learn + find hints about what caused your problem)
  • Look through the django-users mailing list archive ( )

Be imaginative with your Google keywords

If you are looking for information relating to say "Sphinx", just typing that in alone usually won't help.

Here are some common search alternatives you could try;

  • Looking for a method/class called 'ReportBug'
    ReportBug python
    "def ReportBug"
    "class ReportBug"
  • Looking for items relating to Django models
    "Django (model|models)"
    "from django" "import models"
    "howto" django models
    "problem with" django models
  • Look for other peoples mailing list entries about MySQLdb
    "django-users" "(problem|exception)" "MySQLdb"
  • Be smart when it comes to looking for information about exceptions:
    For example:
    OperationalError: (2002, "Can't connect to local MySQL server through 
    socket '/var/run/mysqld/mysqld.sock' (2)")
    Would become:
    django "OperationalError" "2002"
    "connect to local MySQL server through"
    "OperationalError" "connect to local MySQL server through"
    django "problem" "2002" "database"

Prepare the question


  • Include tracebacks (where applicable)
  • Include an example of the code you are using
  • Indicate what your end goal is
  • Indicate what attempts you have made to resolve the problem yourself
  • Ask yourself, what extra information might you need to resolve similar problems?


  • Expect an instant or one-shot answer.

Formatting your mail and your replies

  • Try to use in-line replies where possible.

Follow up

  • Always make an effort to say thank you.
  • If you feel someone did not understand your request (or gives an unrelated answer), then it's important you express this to them, and clarify further.

Report resolution

  • Always make an effort to make your findings public. This may be in the form of a Django core ticket,, blog post, youtube video etc. (Although sometimes, if the mailing list subject is descriptive enough, it may suffice to just have it in archive - which happens automatically)

Start answering questions

  • Give something back to the community by answering questions you feel confident in.
Back to Top