Changes between Version 38 and Version 39 of UsingTheMailingList
- Timestamp:
- Aug 12, 2011, 2:38:39 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
UsingTheMailingList
v38 v39 3 3 = Overview = 4 4 The django-users@googlegroups.com 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. 5 6 == Inspecting Python objects ==7 Here is a great mailing list thread which explains some good ways on how to inspect Python objects:8 http://groups.google.com/group/django-users/browse_thread/thread/69631b8fe7eb4412/ddf4bdb4b18e2997?hl=en&lnk=gst&q=Inspecting+objects#ddf4bdb4b18e29979 10 == Migrating from other frameworks/tools ==11 People migrating from other frameworks/tools face particular issues, mainly regarding basic concepts. We try to address some of these issues here.12 === Zope/Plone ===13 * The fundamental difference here is that Zope is a *server* and completely self contained. It is a webserver cum database server cum templating engine. On the other hand Django is a loosely coupled set of components, and one has to set up the webserver and database outside the framework on one's own - and there is a plethora of choices for these.14 * The Zope templating language is practically a programming language on it's own and it is common practice to embed script python code within templates. Django, on the other hand strictly limits the amount of logic one can put in templates, and it is impossible to embed python code in templates.15 * Zope has clearly defined methods for adding extensions and products. Django does not.16 * It is possible for an end user to produce an enormous amount of functionality in Plone without knowing anything about python in particular and programming in general, or css or html as all these are provided readymade. With Django you have to roll your own css, html etc and will not get very far without learning python and programming.17 === Drupal ===18 === php frameworks ===19 === Java ===20 === RubyOnRails ===21 22 == Are you new to Python? ==23 Asking question about Python related subjects is fine as long as;24 25 * You follow the same guidelines as the rest of this document26 * The question itself is somehow vaguely related to your Django project27 * You understand that learning Django will involve learning Python as well.28 29 For those who would like to read some tutorials on the basics of Python, you could try:30 http://wiki.python.org/moin/BeginnersGuide/Programmers31 32 You can also try:33 http://learnpythonthehardway.org/34 5 35 6 == Classify your question == … … 45 16 'abc' generates an 'xyz' widget, does Django have this feature? 46 17 }}} 47 === Is Django suitable for the app I want to build === 18 19 === How does Python work? === 20 Asking question about Python related subjects is fine as long as; 21 22 * You follow the same guidelines as the rest of this document 23 * The question itself is somehow vaguely related to your Django project 24 * You understand that learning Django will involve learning Python as well. 25 26 For those who would like to read some tutorials on the basics of Python, you could try: 27 http://wiki.python.org/moin/BeginnersGuide/Programmers 28 29 You can also try: 30 http://learnpythonthehardway.org/ 31 32 === Is Django suitable for the app I want to build? === 33 48 34 === Questions on best practices === 49 35 50 == How to find the answers yourself == 36 37 == Try to find the answers yourself == 51 38 * Most of the time, Google holds the answer to your question. 52 39 * Don't expect a 'one-shot / copy-and-paste' answer, there may be some work involved. … … 55 42 * Look through the django-users mailing list archive ( https://groups.google.com/group/django-users/topics?hl=en ) 56 43 57 == Be imaginative with your Google keywords==44 === Google: Be imaginative with your keywords === 58 45 If you are looking for information relating to say "Sphinx", just typing that in alone usually won't help. 59 46 … … 97 84 }}} 98 85 99 == More on where and how to search==86 === More on where and how to search === 100 87 The documentation is the best place to search. The only problem is that the search bar in the docs does not work well on multiple keywords. A search for date range will not give you the desired result. For this use the 'site' option in search engines like duckduckgo - 101 88 http://duckduckgo.com/?q=site%3Adocs.djangoproject.com+date+range 102 89 103 The other place to search is the mailing list. If you *must* search blogs or forums, make sure that you check the date of the post and the django version before complaining that it doesn't work.104 105 Note that the documentation is excellent, but not perfect. It is mostly written by developers, and they often leave out things that are glaringly obvious to them, but not so obvious to the end user. At the same time they are very receptive when this is pointed out by us. Do file a document bug if you come across such problems.90 The other place to search is the mailing list. If you '''must''' search blogs or forums, make sure that you check the date of the post and the Django version before complaining that it doesn't work. 91 92 Note that the documentation is excellent, but not perfect. It is mostly written by developers, and they often leave out things that are glaringly obvious to them, but not so obvious to the end user. At the same time they are very receptive when this is pointed out by us. Don't complain about the documentation; rather file a document bug if you come across such problems. 106 93 107 94 == Prepare the question == … … 112 99 * Include tracebacks (where applicable; especially if there is an error). Make sure you *paste* the *full* traceback. Do not worry about using up space - you are not paying for it. 113 100 * Include a tested example of the code you are using. 114 * Do not obfuscate your code or invent code snippets - if you are reading this, your code is not rocket science and no one is going to steal it. Probably no one will take it even if you pay them.115 101 * Indicate what attempts you have made to resolve the problem/issue yourself 116 102 * Ask yourself, what extra information might you need to resolve similar problems? 117 * 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. 118 * If you post on a Friday or a weekend wait till people have a chance to get over their Monday hangover before expecting a reply. 103 * '''Finally''': proofread your question ''multiple'' times, rewriting for clarity and brevity as needed. You will greatly increase the chances of both getting help and figuring out your stumbling block this way. 119 104 120 105 === Don't's: === … … 122 107 * Expect an instant or one-shot answer. The mailing list is '''not''' your personal tutor. 123 108 * Be vague e.g. "please help build a website". No one has time to write a vague answer. 124 * Keep repeating the same question. If anyone has an answer, you will get it sooner or later. 109 * Keep repeating the same question. If anyone has an answer, you will get it sooner or later. If you post on a Friday or a weekend wait till people have a chance to get over their Monday hangover before expecting a reply. 110 * Obfuscate your code or invent code snippets - if you are reading this, your code is not rocket science and no one is going to steal it. Probably no one will take it even if you pay them. 125 111 * Use the phrase 'it doesn't work'. The most common question on IRC is: 'What does doesn't work mean?' 126 112 * Attempt to 'bump' your question by reposting it a second time. The mailing list is not a phpBB bulletin board. … … 179 165 }}} 180 166 167 181 168 == Follow up == 182 169 * Always make an effort to say thank you. … … 186 173 * 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.) 187 174 188 == Start answering questions ==189 * Give something back to the community by answering questions you feel confident in.190 191 175 == Real examples of how to ask questions properly == 192 176 * http://bugs.python.org/issue12455 … … 211 195 OP posted a question which Google answered very easily. Shows lack of intuition/laziness. Question also wasn't appropriate for this list. 212 196 213 == How to answer questions on the list == 197 198 == Start answering questions == 199 * Give something back to the community by answering questions you feel confident in. 200 201 === How to answer questions on the list === 214 202 * We were all newbies once. If you feel a question is too trivial to answer, do not flame - ignore the post. 215 203 * Ideally everyone who uses django should know the basics of Python, HTML, CSS, SQL and the HTTP protocol, but we do not live in an ideal world. If a post shows lack of such knowledge, gently point the poster to resources that would help. … … 217 205 * If you feel the user hasn't made enough effort to find the answer themselves, explain to them why, and give them some guidance on how they can do this (point them to this page). 218 206 219 == Real examples of how NOT to answer questions==207 === Real examples of how NOT to answer questions === 220 208 * http://groups.google.com/group/django-users/browse_thread/thread/18ec8b88e52974ee/5f8d757781fa2fe4?hl=en#5f8d757781fa2fe4 221 209 * http://groups.google.com/group/django-users/browse_thread/thread/c20226440220c35c?hl=en 210 211 == Other Issues == 212 213 === Inspecting Python objects === 214 215 Here is a great mailing list thread which explains some good ways on how to inspect Python objects: 216 http://groups.google.com/group/django-users/browse_thread/thread/69631b8fe7eb4412/ddf4bdb4b18e2997?hl=en&lnk=gst&q=Inspecting+objects#ddf4bdb4b18e2997 217 218 === Migrating from other frameworks/tools === 219 People migrating from other frameworks/tools face particular issues, mainly regarding basic concepts. We try to address some of these issues here. 220 ==== Zope/Plone ==== 221 * The fundamental difference here is that Zope is a *server* and completely self contained. It is a webserver cum database server cum templating engine. On the other hand Django is a loosely coupled set of components, and one has to set up the webserver and database outside the framework on one's own - and there is a plethora of choices for these. 222 * The Zope templating language is practically a programming language on it's own and it is common practice to embed script python code within templates. Django, on the other hand strictly limits the amount of logic one can put in templates, and it is impossible to embed python code in templates. 223 * Zope has clearly defined methods for adding extensions and products. Django does not. 224 * It is possible for an end user to produce an enormous amount of functionality in Plone without knowing anything about python in particular and programming in general, or css or html as all these are provided readymade. With Django you have to roll your own css, html etc and will not get very far without learning python and programming. 225 ==== Drupal ==== 226 ==== php frameworks ==== 227 ==== Java ==== 228 ==== RubyOnRails ==== 229