Changes between Version 88 and Version 89 of IrcFAQ
- Timestamp:
- Dec 11, 2008, 8:28:53 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IrcFAQ
v88 v89 58 58 59 59 60 = Learning Django = #Learning61 62 == Should I read the documentation on the djangoproject.com website, or djangobook.com? == #WhichDocs63 64 Start with the [http://www.djangoproject.com/documentation/ documentation] here, and then have a look at the book if you're interested; the documentation on djangoproject.com includes the official tutorial, and a number of comprehensive references which aren't currently available in the book.65 66 == What's the difference between {{{null=True}}} and {{{blank=True}}} in models? == #NullVsBlank67 68 `null=True` means that the database will accept a `NULL` value for that field; `blank=True` means that Django's validation system won't complain about a missing value. If you use `blank=True` but ''not'' `null=True` you will need to have your code fill in a value before storage in the database -- specifying a default on a field, or putting something in the model's `save` method to generate a value are two good ways to handle this, and can be extremely useful when you want to calculate one field's value based on others.69 70 == Which runs faster, X or Y? == #WhichIsFaster71 72 This is a tempting question to ask in hopes of getting a quick answer on the "best" way to do something. Unfortunately, the answer is generally "profile your app and see". Performance tuning always starts with a baseline. If you haven't measured current performance to get a baseline, you aren't in a position to do much with the answer to the question anyway.73 74 You can learn more about Python's handy profiling tools in the [http://docs.python.org/lib/profile.html Python documentation].75 76 77 78 60 = Troubleshooting = 79 61 … … 94 76 == I'm using the development version (via Subversion) and when I ran "svn up" a bunch of stuff broke! == #SvnUp 95 77 96 Don't use the development version of Django unless you also follow the BackwardsIncompatibleChanges and possibly the [http://code.djangoproject.com/timeline timeline] as well. That wayyou can see what has changed *before* you update.78 If you use the development version of Django, follow the BackwardsIncompatibleChanges and the [http://code.djangoproject.com/timeline timeline], so you can see what has changed *before* you update. 97 79 98 80 That way, changes like [http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges#Auto-escapingintemplates auto-escaping of HTML in templates] won't catch you by surprise. 99 100 Also, when reading the documentation, keep a special eye out for the "New In Development Version" sections.101 102 == My app and/or models are not showing up on the home page of the admin == #AppNotInAdmin103 104 * Is the app listed in {{{INSTALLED_APPS}}}?105 * Is your models.py free of syntax errors?106 * Do you have an "Admin" inner class in your model?107 * Have you tried restarting the server (this includes the dev server)?108 81 109 82 == My media/static files (CSS, images, etc.) aren't showing up. == #MediaTroubles … … 131 104 132 105 133 == I have a `DateField` or `DateTimeField` with a default value of `now()`, but it's not working! ==134 135 What you've probably done is something like this:136 137 {{{138 some_date_field = models.DateTimeField(default=datetime.datetime.now())139 }}}140 141 When you do that you're immediately calling `datetime.datetime.now` and passing its return value -- ''at the moment the class is defined'' -- to be the default, which means it will not change during the life of a server process. What you want to do instead is this:142 143 {{{144 some_date_field = models.DateTimeField(default=datetime.datetime.now)145 }}}146 147 Note that there are no parentheses on `datetime.datetime.now` in this version, so you're passing ''the function itself'' to be the default. When Django receives a function as a default value for a model field, it will call the function each time a new object is saved, and that will correctly generate the current date/time for each object.148 149 150 106 = How to do Stuff = 151 107 152 108 == How do I create a subclass of an existing model? == #ModelInheritance 153 109 154 Model inheritance (aka model subclassing) is available in Django trunk as of r7477. 155 156 If you're using it, make sure you've [http://www.djangoproject.com/documentation/model-api/#model-inheritance read the documentation] and understand the difference between '''abstract base class''' and '''multi-table''' inheritance options. The latter can be confusing to newcomers because an instance of a parent class will also contain, on an attribute named after a child class, that same object represented as an instance of the child class. Got that? 110 If you're using model inheritance (aka model subclassing), make sure you've [http://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance read the documentation] and understand the difference between the '''abstract base class''' and '''multi-table''' inheritance options. The latter can be confusing to newcomers because an instance of a parent class will also contain, on an attribute named after a child class, that same object represented as an instance of the child class. Got that? 157 111 158 112 An established mechanism for adding additional information to Django `User` objects without subclassing is known as "profiles"; you can [http://www.djangobook.com/en/1.0/chapter12/#s-profiles read about it in the Definitive Guide]. … … 169 123 170 124 The admin interface is designed for use by trusted site staff, not by any user -- if you don't trust a user with the level of access the admin application provides, you'll need to provide non-admin views for the actions you'd like to allow them to take. 171 172 == How do I make extensive changes in the admin interface? == #ExtensiveChangesAdmin173 174 At the moment it's probably best not to; the admin app is fairly specialized and doesn't have a lot of places to customize behavior, so you'll usually end up writing less code by just rolling your own set of views. The [http://code.djangoproject.com/wiki/NewformsAdminBranch newforms-admin branch], however, is significantly changing the admin app's interfaces to make customization much simpler and more flexible.175 176 For less extensive changes, also see the documentation in [http://www.djangobook.com/en/1.0/chapter17/ The Definitive Guide to Django].177 125 178 126 == I want to have some code run when the server/application starts. How do I do that? == #ServerStartup … … 210 158 = Resources, Tools, and Code = #Resources 211 159 160 == Which runs faster, X or Y? == #WhichIsFaster 161 162 This is a tempting question to ask in hopes of getting a quick answer on the "best" way to do something. Unfortunately, the answer is generally "profile your app and see". Performance tuning always starts with a baseline. If you haven't measured current performance to get a baseline, you aren't in a position to do much with the answer to the question anyway. 163 164 You can learn more about Python's handy profiling tools in the [http://docs.python.org/lib/profile.html Python documentation]. 165 212 166 == What editor is best for Django? == #WhichEditor 213 167 214 168 [wiki:UsingVimWithDjango Vim]. No, wait, [wiki:Emacs Emacs]. A lot of people seem to like TextMate, too. The best editor is the editor ''you'' prefer. 215 216 == Is there a free CMS available for Django? == #CMS217 218 At this point there is nothing well-established (like Plone, for instance). In practice, people mean so many different things by "CMS" that it may be hard to get a straight answer. This question is often asked by newcomers; one recommendation is to learn a bit of Django and see just how easy it is to make a site that does what you want. If you're in a big rush, there's always Ellington: http://www.ellingtoncms.com/219 220 There is also a new (April '08) project called [http://pinax.hotcluboffrance.com/ Pinax] that combines a number of open-source Django apps into an integrated starting point for websites that need authentication and membership features.221 169 222 170 == Where can I find example code and/or reusable apps? == #ShowMeTheCode … … 226 174 * http://www.djangosites.org/with-source/ 227 175 * http://djangoplugables.com/ 228 * http:// code.google.com/p/django-hotclub/176 * http://pinaxproject.com/ 229 177 * http://code.google.com/hosting/search?q=label:django 230 178 * http://github.com/search?q=django