当我在进行平面教程时,我收到错误SITE_ID
未设置。我在设置文件中插入SITE_ID=1
,一切正常。但我不知道这究竟意味着什么。
我通读了django docs
。但我并不完全清楚它的用途。
我什么时候会使用类似SITE_ID = 2的东西。
在同一个说明中,我在代码中使用了以下代码片段而实际上并不知道它的作用:
current_site=Site.objects.get_current()
我认为这与SITE_ID
有关,但可能不是。
一些示例来说明SITE_ID
可能采用不同于1的值会有所帮助。
答案 0 :(得分:4)
您可以在多个站点上使用代码,或者与其他站点共享数据库。来自the documentation的示例:
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()
使用此模型,Photo.objects.all()
将返回数据库中的所有Photo对象,但Photo.on_site.all()
将仅返回与当前站点关联的Photo对象,具体取决于SITE_ID设置。
换句话说,这两个陈述是等价的:
Photo.objects.filter(site=settings.SITE_ID)
Photo.on_site.all()
答案 1 :(得分:0)
SITE_ID 默认值:未定义
django_site数据库表中当前站点的ID(整数)。这样可以使应用程序数据挂钩到特定站点,单个数据库可以管理多个站点的内容。