je veux remplir django_site table quand je cours après syncdb au départ comment puis-je faire j'ai un seul sitePopulate automatique lorsque syncdb avec fixation pour django site
Répondre
Vous pouvez utiliser l'interface d'administration, de le shell, ou le script (si vous cherchez une solution automatisée). Voici comment faire de la coquille (et ce que vous mettriez dans le script):
[[email protected] projects]$ python manage.py shell
>>> from django.contrib.sites.models import Site
>>> newsite = Site(name="Test",domain="test.com")
>>> newsite.save()
Si vous voulez faire cela automatiquement, essayez cette
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)
Ce code doit être exécuté à chaque fois une commande de gestion est exécutée. Donc, vous pouvez le mettre dans management/__init__.py
pour n'importe quelle application. Ensuite, il suffit d'ajouter SITE_ID
, SITE_NAME
et SITE_DOMAIN
à votre settings.py
.
Une solution simple consiste à créer un appareil initial_data.json pour l'application Sites qui remplacera la valeur par défaut.
Par exemple, mon appareil à /myproject/myapp/fixtures/initial_data.json:
[
{
"model": "sites.site",
"pk": 1,
"fields": {
"domain": "myproject.mydomain.com",
"name": "My Project"
}
}
]
Une petite note: Parce que ce sont des données communes pour l'ensemble du projet, il pourrait être une bonne idée de stocker l'appareil à/myproject/appareils/ou à une application/myproject/commons/(comme je le fais) au lieu de le stocker avec juste quelques app. Cela permet aux données d'être faciles à trouver et rend les applications un peu plus réutilisables.
Une deuxième remarque: Django permet d'utiliser plusieurs projecteurs initial_data.json dans plusieurs applications (L'utilisation d'un ensemble mixte de projecteurs initial_data.json et initial_data.yaml n'a pas fonctionné comme prévu: P). Ils seront tous automatiquement utilisés pour pré-remplir la base de données lors de l'exécution de syncdb.
Quelques références:
- Django - Providing initial data with fixtures
- Le deuxième commentaire à a codespatter.com blog post
- 1. django fabric syncdb
- 2. Django site admin combo box auto populate basé sur l'entrée
- 3. Appareils django: charger plusieurs appareils sur syncdb
- 4. Django syncdb ne crée pas de tables pour mon application
- 5. Django Tous les SQL de syncdb
- 6. Quel est l'équivalent Pylons de 'syncdb' de Django?
- 7. Django manage.py syncdb jeter Aucun module nommé MySQLdb
- 8. erreur manage.py syncdb, postgres_psycopg2
- 9. django - url avec ajout automatique de slash
- 10. indentation de fixation lorsque initialiseurs d'objets ont été utilisés
- 11. Ajout automatique de données python django
- 12. Intégrer django avec django-lfs
- 13. Django POPULATE champ de sélection basé sur le modèle requête
- 14. Configurer MySQL pour qu'il fonctionne avec Django
- 15. Impossible de faire fonctionner python.manage.py syncdb
- 16. génération d'entrée automatique django
- 17. Auteur automatique dans Django administrateur
- 18. fixation css pour IE6 besoin d'aide!
- 19. Populate DataTable avec LINQ en C#
- 20. Comment puis-je syncdb db_table et app_label jouer bien ensemble
- 21. Populate Dataset avec UNION ALL requête SQL
- 22. Zend_Form :: populate() erreur
- 23. fixation subversion commit avec commentaire invalide
- 24. propriétés POPULATE décorées avec un attribut
- 25. table SQL Populate avec des données aléatoires
- 26. populate listview dynamiquement
- 27. de fixation cache
- 28. erreurs geodjango syncdb. Du tutoriel geodjango
- 29. Django ne trouve pas d'applications dans virtualenv lors de l'utilisation de manage.py syncdb
- 30. Saisie semi-automatique avec Django, jQuery et google app engine
je crois comprendre que les appareils sont la meilleure façon de le faire. Voir la réponse d'Askell ci-dessous. – Josh