python - tutorial - La "vista en el sitio" de Django Admin apunta a example.com en lugar de a mi dominio
docs django project (5)
Debe cambiar el valor predeterminado del dominio del sitio .
get_absolute_url
una función get_absolute_url
a uno de mis modelos.
def get_absolute_url(self):
return ''/foo/bar''
El sitio de administración lo recoge y agrega un enlace "ver en el sitio" a la página de detalles para ese objeto (cuando coloco una URL real allí en lugar de "/ foo / barra").
El problema es que en lugar de ir a http://localhost:8000/foo/bar
, va a http://example.com/foo/bar
.
¿Qué estoy haciendo mal?
Puede cambiar esto en / admin / sites si tiene la administración habilitada.
Lo más divertido es que "example.com" aparece en un lugar obvio. Sin embargo, estaba buscando dentro de una hora más o menos.
Solo usa tu interfaz de administrador -> Sitios -> ... ahí está :)
Como otros han mencionado, esto tiene que ver con el marco de sites
predeterminado .
Si usa South para migraciones de bases de datos (probablemente una buena idea en general), puede usar una migración de datos para evitar tener que hacer que esta misma base de datos cambie en cualquier lugar donde implemente su aplicación , siguiendo las líneas de
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()
Cuando haya editado una instancia de Site, pensó el administrador, debe reiniciar su servidor web para que el cambio surta efecto. Supongo que esto debe significar que la base de datos solo se lee cuando el servidor web se inicia por primera vez.