bra*_*orm 5 django django-sites
当我在做平面教程时,我因SITE_ID没有设置而收到错误.我插入SITE_ID=1设置文件,一切正常.但我不知道这究竟意味着什么.
我读完了django docs.但我并不完全清楚它的用途.我什么时候会使用类似SITE_ID = 2的东西.
同样,我在代码中使用了以下代码片段而实际上并不知道它的作用:
current_site=Site.objects.get_current()
Run Code Online (Sandbox Code Playgroud)
我认为这与某些事情有关,SITE_ID但可能不是.
一些示例来说明哪里SITE_ID可能采用不同于1的值会有所帮助.
如果您在多个站点上使用您的代码,或者您与另一个站点共享一个数据库,这会很有帮助。文档中的一个示例:
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()
Run Code Online (Sandbox Code Playgroud)
使用此模型,Photo.objects.all()将Photo.on_site.all()根据 SITE_ID 设置返回数据库中的所有 Photo 对象,但将仅返回与当前站点关联的 Photo 对象。
换句话说,这两个语句是等价的:
Photo.objects.filter(site=settings.SITE_ID)
Photo.on_site.all()
Run Code Online (Sandbox Code Playgroud)