Django Admin的“网站视图”指向example.com而不是我的域名

时间:2008-12-05 19:23:12

标签: python django django-admin

我在其中一个模型中添加了get_absolute_url函数。

def get_absolute_url(self):
    return '/foo/bar' 

管理网站选择它并添加一个“网站视图”链接到该对象的详细信息页面(当我在那里放置一个真实的URL而不是“/ foo / bar”时)。

问题不是转到http://localhost:8000/foo/bar,而是转到http://example.com/foo/bar

我做错了什么?

6 个答案:

答案 0 :(得分:24)

您必须更改default site域名值。

答案 1 :(得分:6)

最有趣的是“example.com”出现在一个显而易见的地方。然而,我在一个小时左右的时间里寻找。

只需使用您的管理界面 - >网站 - > ......那里是:)

答案 2 :(得分:4)

如果您启用了管理员,则可以在/ admin / sites中更改此内容。

答案 3 :(得分:4)

正如其他人所说,这与default sites framework

有关

如果您正在使用South进行数据库迁移(可能很好 一般来说,你可以{/ 3}},

from south.v2 import DataMigration
from django.conf import settings

class Migration(DataMigration):

    def forwards(self, orm):
        Site = orm['sites.Site']
        site = Site.objects.get(id=settings.SITE_ID)
        site.domain = 'yoursite.com'
        site.name = 'yoursite'
        site.save()

答案 4 :(得分:1)

当您编辑了一个认为是admin的Site实例时,您需要重新启动Web服务器才能使更改生效。我想这必须意味着只有在Web服务器首次启动时才会读取数据库。

答案 5 :(得分:1)

如果您使用的是django的较新版本。数据迁移是这样的:

from django.conf import settings
from django.db import migrations

def change_site_name(apps, schema_editor):
    Site = apps.get_model('sites', 'Site')
    site = Site.objects.get(id=settings.SITE_ID)
    site.domain = 'yourdomain.com'
    site.name = 'Your Site'
    site.save()

class Migration(migrations.Migration):

    dependencies = [
        ('app', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(change_site_name),
    ]