8

フラットページのチュートリアルを行っているときに、SITE_ID設定されていないというエラーが発生しました。SITE_ID=1設定ファイルに挿入したところ、すべて正常に機能しました。しかし、これが実際に何を意味するのかわかりません。

を読みましたdjango docs。しかし、私はその用途が完全には明らかではありません。SITE_ID=2 のようなものはいつ使用しますか。

同じメモで、実際に何をするのかを知らずに、コードで次のスニペットを使用しました。

current_site=Site.objects.get_current()

これは何か関係があると思いますが、そうではSITE_IDないかもしれません。

SITE_ID1 以外の値を取ることができる場所を示すいくつかの例が役立ちます。

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()

このモデルでPhoto.objects.all()は、データベース内のすべての Photo オブジェクトが返されますがPhoto.on_site.all()、SITE_ID 設定に従って、現在のサイトに関連付けられている Photo オブジェクトのみが返されます。

別の言い方をすれば、これら 2 つのステートメントは同等です。

Photo.objects.filter(site=settings.SITE_ID)
Photo.on_site.all()
于 2014-06-17T17:57:57.083 に答える