8

当我在做平面教程时,我因为SITE_ID没有被设置而出错。我插入SITE_ID=1了设置文件,一切正常。但我不知道这实际上意味着什么。

我通读了django docs. 但我并不完全清楚它的用途。我什么时候会使用 SITE_ID=2 之类的东西。

同样,我在代码中使用了以下代码段,但实际上并不知道它的作用:

current_site=Site.objects.get_current()

我认为这与此有关,SITE_ID但可能不是。

一些示例来演示哪里SITE_ID可以采用与 1 不同的值会有所帮助。

4

2 回答 2

5

如果您在多个站点上使用您的代码,或者如果您与另一个站点共享一个数据库,这将很有帮助。文档中的一个示例:

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()
于 2014-06-17T17:57:57.083 回答
0

从文档

SITE_ID 默认值:未定义

django_site 数据库表中当前站点的 ID,整数形式。这用于使应用程序数据可以连接到特定站点,并且单个数据库可以管理多个站点的内容。

于 2014-06-17T17:53:46.440 回答