2014-06-17 18 views
5

Khi tôi đang làm hướng dẫn trang phẳng, tôi đã nhận được lỗi cho SITE_ID không được đặt. Tôi đã chèn SITE_ID=1 vào tệp cài đặt và mọi thứ hoạt động tốt. Nhưng tôi không biết điều này thực sự có ý nghĩa gì.việc sử dụng cài đặt SITE_ID trong django là gì?

Tôi đọc qua django docs. nhưng tôi không hoàn toàn rõ ràng việc sử dụng nó. khi nào tôi sẽ sử dụng một cái gì đó như SITE_ID = 2.

Cùng lưu ý, tôi sử dụng đoạn mã sau trong mã của tôi mà không thực sự biết những gì nó làm:

current_site=Site.objects.get_current() 

Tôi giả định này có cái gì để làm với SITE_ID nhưng có thể không.

Một số ví dụ để chứng minh nơi SITE_ID có thể có các giá trị khác với 1 sẽ giúp ích.

Trả lời

0

From documentation:

SITE_ID Mặc định: Không định nghĩa

ID, như một số nguyên, các trang web hiện tại trong bảng cơ sở dữ liệu django_site. Điều này được sử dụng để dữ liệu ứng dụng có thể nối vào các trang web cụ thể và một cơ sở dữ liệu duy nhất có thể quản lý nội dung cho nhiều trang web.

4

Điều hữu ích là bạn sử dụng mã của mình trên nhiều trang web hoặc nếu bạn chia sẻ cơ sở dữ liệu với một trang web khác. Một ví dụ từ 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() 

Với mô hình này, Photo.objects.all() sẽ trả lại tất cả đối tượng hình ảnh trong cơ sở dữ liệu, nhưng Photo.on_site.all() sẽ trở lại chỉ các đối tượng hình ảnh gắn liền với trang web hiện tại, theo các thiết lập SITE_ID.

Nói cách khác, hai báo cáo là tương đương:

Photo.objects.filter(site=settings.SITE_ID) 
Photo.on_site.all() 
+0

làm thế nào để bạn thiết lập mà SITE_ID nào tương ứng với trang web. cho ex '1' tương ứng với' example.com', '2' tương ứng với' tutorial.com' etc –

+0

@brainstorm Mỗi trang có thể sẽ có 'settings.py' riêng của nó, nơi nó sẽ được thiết lập. – Banana

Các vấn đề liên quan