Code


Version 10 (modified by lawgon, 3 years ago) (diff)

--

Overview

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

There are different types of questions, each type requires a different level of detail. The most common type is about problem solving, and most of this page is devoted to this. Other types are:

Does Django have a particular feature?

Wrong way: Does Django have scaffolding like rails? Here you assume that everyone knows what rails is and what scaffolding is. Or you expect users to waste their time investigating. Do not do this. Explain what this feature is and what it does. Right way: Foo framework has a feature that automatically generates html given certain keywords like 'abc' generates an 'xyz' widget, does Django have this feature?

Is Django suitable for the app I want to build

Questions on best practices

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 ( https://groups.google.com/group/django-users/topics?hl=en )

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

Do's:

  • Indicate what your end goal is (or is not)
  • Include tracebacks (where applicable; especially if there is an error)
  • Include a tested example of the code you are using
  • Indicate what attempts you have made to resolve the problem/issue yourself
  • Ask yourself, what extra information might you need to resolve similar problems?
  • Proofread your e-mail multiple times, rewriting for clarity and brevity as needed. You will greatly increase the chances of both getting help and figuring own your stumbling block this way.

Don't's:

  • Expect an instant or one-shot answer.
  • Be vague e.g. "please help build a website"

Formatting your mail and your replies

  • Try to use in-line replies where possible.
  • Try and add your response below the previous one (Google will automatically collapse all the previous responses)

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, djangosnippets.com, 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.

Real examples of how to ask questions properly

Real examples of how not to ask questions

Question is vague, with no thought behind it.

Question is vague, a simple Google would have yielded the answers OP needed.