Loading docs/intro/overview.txt +25 −11 Original line number Diff line number Diff line Loading @@ -23,8 +23,10 @@ code. The :doc:`data-model syntax </topics/db/models>` offers many rich ways of representing your models -- so far, it's been solving many years' worth of database-schema problems. Here's a quick example, which might be saved in the file ``mysite/news/models.py``:: database-schema problems. Here's a quick example: .. snippet:: :filename: mysite/news/models.py from django.db import models Loading Loading @@ -141,9 +143,10 @@ A dynamic admin interface: it's not just scaffolding -- it's the whole house Once your models are defined, Django can automatically create a professional, production ready :doc:`administrative interface </ref/contrib/admin/index>` -- a Web site that lets authenticated users add, change and delete objects. It's as easy as registering your model in the admin site:: as easy as registering your model in the admin site: # In models.py... .. snippet:: :filename: mysite/news/models.py from django.db import models Loading @@ -153,12 +156,13 @@ as easy as registering your model in the admin site:: content = models.TextField() reporter = models.ForeignKey(Reporter) .. snippet:: :filename: mysite/news/admin.py # In admin.py in the same directory... import models from django.contrib import admin from . import models admin.site.register(models.Article) The philosophy here is that your site is edited by a staff, or a client, or Loading @@ -182,7 +186,10 @@ mapping between URL patterns and Python callback functions. URLconfs also serve to decouple URLs from Python code. Here's what a URLconf might look like for the ``Reporter``/``Article`` example above:: example above: .. snippet:: :filename: mysite/news/urls.py from django.conf.urls import url Loading Loading @@ -222,10 +229,15 @@ The rest is up to you. Generally, a view retrieves data according to the parameters, loads a template and renders the template with the retrieved data. Here's an example view for ``year_archive`` from above:: ``year_archive`` from above: .. snippet:: :filename: mysite/news/views.py from django.shortcuts import render from .models import Article def year_archive(request, year): a_list = Article.objects.filter(pub_date__year=year) context = {'year': year, 'article_list': a_list} Loading @@ -248,7 +260,8 @@ first directory, it checks the second, and so on. Let's say the ``news/year_archive.html`` template was found. Here's what that might look like: .. code-block:: html+django .. snippet:: html+django :filename: mysite/news/templates/news/year_archive.html {% extends "base.html" %} Loading Loading @@ -288,7 +301,8 @@ in templates: each template has to define only what's unique to that template. Here's what the "base.html" template, including the use of :doc:`static files </howto/static-files/index>`, might look like: .. code-block:: html+django .. snippet:: html+django :filename: mysite/templates/base.html {% load staticfiles %} <html> Loading Loading
docs/intro/overview.txt +25 −11 Original line number Diff line number Diff line Loading @@ -23,8 +23,10 @@ code. The :doc:`data-model syntax </topics/db/models>` offers many rich ways of representing your models -- so far, it's been solving many years' worth of database-schema problems. Here's a quick example, which might be saved in the file ``mysite/news/models.py``:: database-schema problems. Here's a quick example: .. snippet:: :filename: mysite/news/models.py from django.db import models Loading Loading @@ -141,9 +143,10 @@ A dynamic admin interface: it's not just scaffolding -- it's the whole house Once your models are defined, Django can automatically create a professional, production ready :doc:`administrative interface </ref/contrib/admin/index>` -- a Web site that lets authenticated users add, change and delete objects. It's as easy as registering your model in the admin site:: as easy as registering your model in the admin site: # In models.py... .. snippet:: :filename: mysite/news/models.py from django.db import models Loading @@ -153,12 +156,13 @@ as easy as registering your model in the admin site:: content = models.TextField() reporter = models.ForeignKey(Reporter) .. snippet:: :filename: mysite/news/admin.py # In admin.py in the same directory... import models from django.contrib import admin from . import models admin.site.register(models.Article) The philosophy here is that your site is edited by a staff, or a client, or Loading @@ -182,7 +186,10 @@ mapping between URL patterns and Python callback functions. URLconfs also serve to decouple URLs from Python code. Here's what a URLconf might look like for the ``Reporter``/``Article`` example above:: example above: .. snippet:: :filename: mysite/news/urls.py from django.conf.urls import url Loading Loading @@ -222,10 +229,15 @@ The rest is up to you. Generally, a view retrieves data according to the parameters, loads a template and renders the template with the retrieved data. Here's an example view for ``year_archive`` from above:: ``year_archive`` from above: .. snippet:: :filename: mysite/news/views.py from django.shortcuts import render from .models import Article def year_archive(request, year): a_list = Article.objects.filter(pub_date__year=year) context = {'year': year, 'article_list': a_list} Loading @@ -248,7 +260,8 @@ first directory, it checks the second, and so on. Let's say the ``news/year_archive.html`` template was found. Here's what that might look like: .. code-block:: html+django .. snippet:: html+django :filename: mysite/news/templates/news/year_archive.html {% extends "base.html" %} Loading Loading @@ -288,7 +301,8 @@ in templates: each template has to define only what's unique to that template. Here's what the "base.html" template, including the use of :doc:`static files </howto/static-files/index>`, might look like: .. code-block:: html+django .. snippet:: html+django :filename: mysite/templates/base.html {% load staticfiles %} <html> Loading