如果您在多个站点上使用您的代码,或者如果您与另一个站点共享一个数据库,这将很有帮助。文档中的一个示例:
from django.db import models
from django.contrib.sites.models import Site
from django.contrib.sites.managers import CurrentSiteManager
class Photo(models.Model):
photo = models.FileField(upload_to='/home/photos')
photographer_name = models.CharField(max_length=100)
site = models.ForeignKey(Site)
objects = models.Manager()
on_site = CurrentSiteManager()
使用此模型,将根据 SITE_ID 设置返回Photo.objects.all()
数据库中的所有照片对象,但仅返回与当前站点关联的照片对象。Photo.on_site.all()
换句话说,这两个语句是等价的:
Photo.objects.filter(site=settings.SITE_ID)
Photo.on_site.all()