voglio compilare django_site tavolo quando ho eseguito dopo syncdb inizialmente come posso fare che ho un sito solopopolano auto quando syncdb con il dispositivo per Django loco
risposta
è possibile utilizzare l'interfaccia di amministrazione, da la shell, o script it (se stai cercando una soluzione automatizzata). Ecco come farlo dalla shell (e quello che si potrebbe mettere in script):
[[email protected] projects]$ python manage.py shell
>>> from django.contrib.sites.models import Site
>>> newsite = Site(name="Test",domain="test.com")
>>> newsite.save()
Se si vuole fare questo automaticamente, provate questo
from django.contrib import sites
from django.db.models import signals
from django.conf import settings
def create_site(app, created_models, verbosity, **kwargs):
"""
Create the default site when when we install the sites framework
"""
if sites.models.Site in created_models:
sites.models.Site.objects.all().delete()
site = sites.models.Site()
site.pk = getattr(settings, 'SITE_ID', 1)
site.name = getattr(settings, 'SITE_NAME', 'Example')
site.domain = getattr(settings, 'SITE_DOMAIN', 'example.com')
site.save()
signals.post_syncdb.connect(create_site, sender=sites.models)
Questo codice deve essere eseguito ogni volta che viene eseguito un comando di gestione. Quindi potresti metterlo in management/__init__.py
per qualsiasi app. Quindi aggiungi solo SITE_ID
, SITE_NAME
e SITE_DOMAIN
al numero settings.py
.
La soluzione semplice consiste nel creare un dispositivo initial_data.json per l'app Sites che sovrascriverà il valore predefinito.
Ad esempio, il mio dispositivo a /myproject/myapp/fixtures/initial_data.json:
[
{
"model": "sites.site",
"pk": 1,
"fields": {
"domain": "myproject.mydomain.com",
"name": "My Project"
}
}
]
Una piccola nota: Poiché si tratta di dati comune per l'intero progetto, potrebbe essere una buona idea per memorizzare l'apparecchio su/myproject/fixtures/o su un'app/myproject/commons/(come faccio io) invece di memorizzarlo con solo nell'app. Ciò consente di trovare facilmente i dati e rende le app un po 'più riutilizzabili.
Una seconda nota: Django consente di utilizzare più dispositivi initial_data.json in più app (l'utilizzo di set misti di initial_data.json e initial_data.yaml fixtures non ha funzionato come previsto: P). Verranno automaticamente utilizzati per pre-compilare il database quando viene eseguito syncdb.
Alcune referenze:
- Django - Providing initial data with fixtures
- Il secondo commento a a codespatter.com blog post
- 1. Django SyncDB e migrare
- 2. Django - syncdb non crea tabelle
- 3. Django syncdb nome personalizzato per tabella
- 4. Django filo vs sqlclear & syncdb
- 5. Errore durante syncdb del django sul server
- 6. SyncDB di Django fallisce con MySQL errno: 150
- 7. Django syncdb non crea tabelle per la mia app
- 8. errore auth_user con Django 1.8 e syncdb/migrare
- 9. Come posso eseguire `syncdb --noinput` di Django con call_command?
- 10. impossibile creare il superutente dopo syncdb
- 11. Auto-popolando campo created_by con il sito di amministrazione Django
- 12. Parzialmente popolano Collezione Bambino con NHibernate
- 13. In Django, come creare tabelle da un file SQL quando viene eseguito syncdb
- 14. Django non trova app in virtualenv quando si utilizza manage.py syncdb
- 15. Django evita di creare PointField nel database quando eseguo python manage.py syncdb
- 16. jquery popolano selezionare Elenco
- 17. Cosa dovrei usare al posto di syncdb in Django 1.9?
- 18. Qual è il trucco per creare un'interfaccia utente WPF reattiva quando si popolano più ListBox?
- 19. Django - rileva il dispositivo mobile nelle viste
- 20. "C2593: operator = is ambiguous" quando popolano std :: map
- 21. auto-riscoperta root del progetto django
- 22. Mescolamento in loco di array multidimensionali
- 23. Come specificare il nome dello schema durante l'esecuzione di "syncdb" in django?
- 24. In django, come posso chiamare il sottocomando 'syncdb' dallo script di inizializzazione?
- 25. Verticale "scheda" in loco UI jQuery
- 26. Django e sud: utilizzando sud, syncdb mostra myapp come 'non sincronizzato (usa le migrazioni)'
- 27. con un database separato per django-admin in django
- 28. "settings.DATABASES è configurato in modo errato" errore durante l'esecuzione di syncdb con django 1.4
- 29. Django query di filtro ForeignKey auto-ricorsiva per tutti Childs
- 30. Come sapere quando il dispositivo iOS è collegato?
mia comprensione è che gli impianti sono il modo migliore di fare questo. Vedi la risposta @ di Askell qui sotto. – Josh