«Просмотр на сайте» администратора Django указывает на example.com вместо моего домена - PullRequest
26 голосов
/ 05 декабря 2008

Я добавил функцию 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 ]

24 голосов
/ 05 декабря 2008

Вы должны изменить сайт по умолчанию значение домена.

6 голосов
/ 28 февраля 2010

Самое смешное, что «example.com» появляется в очевидном месте. Тем не менее, я искал в течение часа или около того.

Просто используйте ваш интерфейс администратора -> Сайты -> ... вот оно:)

4 голосов
/ 10 июля 2012

Как уже упоминалось, это связано с по умолчанию sites framework .

Если вы используете Юг для миграции баз данных (вероятно, хороший идея в целом), вы можете использовать миграцию данных, чтобы избежать необходимости вносить изменения в одну и ту же базу данных везде, где вы развертываете свое приложение , в соответствии с

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 голосов
/ 17 декабря 2008

Вы можете изменить это в / admin / sites, если у вас включен администратор.

1 голос
/ 04 марта 2019

Если вы используете более новые версии 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),
    ]
1 голос
/ 10 июля 2012

Когда вы отредактировали экземпляр сайта с правами администратора, вам нужно перезапустить веб-сервер, чтобы изменения вступили в силу. Я думаю, это должно означать, что база данных читается только при первом запуске веб-сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...