mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Merge branch 'master' of github.com:django/django
This commit is contained in:
		| @@ -127,8 +127,10 @@ For example:: | |||||||
|     def my_view(request): |     def my_view(request): | ||||||
|         if settings.SITE_ID == 3: |         if settings.SITE_ID == 3: | ||||||
|             # Do something. |             # Do something. | ||||||
|  |             pass | ||||||
|         else: |         else: | ||||||
|             # Do something else. |             # Do something else. | ||||||
|  |             pass | ||||||
|  |  | ||||||
| Of course, it's ugly to hard-code the site IDs like that. This sort of | Of course, it's ugly to hard-code the site IDs like that. This sort of | ||||||
| hard-coding is best for hackish fixes that you need done quickly. The | hard-coding is best for hackish fixes that you need done quickly. The | ||||||
| @@ -141,11 +143,13 @@ domain:: | |||||||
|         current_site = get_current_site(request) |         current_site = get_current_site(request) | ||||||
|         if current_site.domain == 'foo.com': |         if current_site.domain == 'foo.com': | ||||||
|             # Do something |             # Do something | ||||||
|  |             pass | ||||||
|         else: |         else: | ||||||
|             # Do something else. |             # Do something else. | ||||||
|  |             pass | ||||||
|  |  | ||||||
| This has also the advantage of checking if the sites framework is installed, and | This has also the advantage of checking if the sites framework is installed, | ||||||
| return a :class:`RequestSite` instance if it is not. | and return a :class:`RequestSite` instance if it is not. | ||||||
|  |  | ||||||
| If you don't have access to the request object, you can use the | If you don't have access to the request object, you can use the | ||||||
| ``get_current()`` method of the :class:`~django.contrib.sites.models.Site` | ``get_current()`` method of the :class:`~django.contrib.sites.models.Site` | ||||||
| @@ -158,8 +162,10 @@ the :setting:`SITE_ID` setting. This example is equivalent to the previous one:: | |||||||
|         current_site = Site.objects.get_current() |         current_site = Site.objects.get_current() | ||||||
|         if current_site.domain == 'foo.com': |         if current_site.domain == 'foo.com': | ||||||
|             # Do something |             # Do something | ||||||
|  |             pass | ||||||
|         else: |         else: | ||||||
|             # Do something else. |             # Do something else. | ||||||
|  |             pass | ||||||
|  |  | ||||||
| Getting the current domain for display | Getting the current domain for display | ||||||
| -------------------------------------- | -------------------------------------- | ||||||
| @@ -200,8 +206,8 @@ subscribing to LJWorld.com alerts." Same goes for the email's message body. | |||||||
|  |  | ||||||
| Note that an even more flexible (but more heavyweight) way of doing this would | Note that an even more flexible (but more heavyweight) way of doing this would | ||||||
| be to use Django's template system. Assuming Lawrence.com and LJWorld.com have | be to use Django's template system. Assuming Lawrence.com and LJWorld.com have | ||||||
| different template directories (:setting:`TEMPLATE_DIRS`), you could simply farm out | different template directories (:setting:`TEMPLATE_DIRS`), you could simply | ||||||
| to the template system like so:: | farm out to the template system like so:: | ||||||
|  |  | ||||||
|     from django.core.mail import send_mail |     from django.core.mail import send_mail | ||||||
|     from django.template import loader, Context |     from django.template import loader, Context | ||||||
| @@ -216,9 +222,9 @@ to the template system like so:: | |||||||
|  |  | ||||||
|         # ... |         # ... | ||||||
|  |  | ||||||
| In this case, you'd have to create :file:`subject.txt` and :file:`message.txt` template | In this case, you'd have to create :file:`subject.txt` and :file:`message.txt` | ||||||
| files for both the LJWorld.com and Lawrence.com template directories. That | template files for both the LJWorld.com and Lawrence.com template directories. | ||||||
| gives you more flexibility, but it's also more complex. | That gives you more flexibility, but it's also more complex. | ||||||
|  |  | ||||||
| It's a good idea to exploit the :class:`~django.contrib.sites.models.Site` | It's a good idea to exploit the :class:`~django.contrib.sites.models.Site` | ||||||
| objects as much as possible, to remove unneeded complexity and redundancy. | objects as much as possible, to remove unneeded complexity and redundancy. | ||||||
| @@ -240,6 +246,15 @@ To do this, you can use the sites framework. A simple example:: | |||||||
|     >>> 'http://%s%s' % (Site.objects.get_current().domain, obj.get_absolute_url()) |     >>> 'http://%s%s' % (Site.objects.get_current().domain, obj.get_absolute_url()) | ||||||
|     'http://example.com/mymodel/objects/3/' |     'http://example.com/mymodel/objects/3/' | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Default site and ``syncdb`` | ||||||
|  | =========================== | ||||||
|  |  | ||||||
|  | ``django.contrib.sites`` registers a | ||||||
|  | :data:`~django.db.models.signals.post_syncdb` signal handler which creates a | ||||||
|  | default site named ``example.com`` with the domain ``example.com``. For | ||||||
|  | example, this site will be created after Django creates the test database. | ||||||
|  |  | ||||||
| Caching the current ``Site`` object | Caching the current ``Site`` object | ||||||
| =================================== | =================================== | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user