我有一个简单的博客/论坛网站我建立一个Django项目。
我使用的是联合供稿框架 ,这似乎产生了使用从当前站点的域Feed中的商品网址的网站框架 。
我以前不知道的网站框架。 我的项目是不会被用于多个站点,只有一个。
我想要做的是设置在什么domain
当前站点的属性。 凡在我的Django项目我应该怎么办呢? 某处/settings.py?
我有一个简单的博客/论坛网站我建立一个Django项目。
我使用的是联合供稿框架 ,这似乎产生了使用从当前站点的域Feed中的商品网址的网站框架 。
我以前不知道的网站框架。 我的项目是不会被用于多个站点,只有一个。
我想要做的是设置在什么domain
当前站点的属性。 凡在我的Django项目我应该怎么办呢? 某处/settings.py?
如果我理解正确的话,网站框架数据存储在数据库中,所以如果我想永久保存此,我想这是在合适的initial_data
夹具 。
我启动了Django的外壳,并做了以下内容:
>>> from django.contrib.sites.models import Site
>>> one = Site.objects.all()[0]
>>> one.domain = 'myveryspecialdomain.com'
>>> one.name = 'My Special Site Name'
>>> one.save()
然后,我在命令行抓住眼前这个数据:
python manage.py dumpdata sites
并粘贴到我的预先存在的initial_data
夹具。
其他答案建议手动更新管理,壳牌网站,或您的数据库。 这是一个坏主意,它应该是自动的。
你可以创建一个迁移当您运行迁移即会自动执行此操作,所以你可以放心它总是应用(例如,当你部署到生产环境)。 这还建议在文档中 ,但没有列出的指令。
首先,运行./manage.py makemigrations --empty myapp
创建一个空的迁移。 然后添加以下代码:
from django.db import migrations
from django.conf import settings
def update_site_name(apps, schema_editor):
SiteModel = apps.get_model('sites', 'Site')
domain = 'mydomain.com'
SiteModel.objects.update_or_create(
pk=settings.SITE_ID,
domain=domain,
name=domain
)
class Migration(migrations.Migration):
dependencies = [
# Make sure the dependency that was here by default is also included here
('sites', '0002_alter_domain_unique'), # Required to reference `sites` in `apps.get_model()`
]
operations = [
migrations.RunPython(update_site_name),
]
请确保您已设置SITE_ID
在你的设置和文件重命名为合适的东西,如update_site_details.py
。 然后运行./manage.py migrate
应用更改:)
您可以手动修改数据库中的网页条目。 导航到名为“django_site”表。 然后,您应该只看到一个条目(行)。 你要修改名为“ 域 ”的字段(列)。
您可以使用Django管理站点更改。
只要进入127.0.0.1:8000/admin/sites/