10
votes

Colonnes Commander dans le modèle de Django

Donc, je me demande comment définir l'ordre des colonnes dans le modèle de sorte que lorsque Django transforme l'ingénierie pour générer une base de données, l'ordre des colonnes de la table de base de données physiques peut être déterminé par le modèle lui-même?

Actuellement, certaines de mes classes de modèle hésitant à partir d'une autre classe modèle, la classe modèle dérivée mettez-la toujours les colonnes de la classe mère d'abord, mais je veux contrôler cela.

merci


1 commentaires

Avez-vous déjà trouvé une solution de contournement pour cela? Lorsque vous appelez des fonctions dans PGSQL qui utilisent des variables Rowtype comme paramètre, je dois sérialiser le modèle dans la commande de colonne correcte et je ne trouve pas de solution pour cela (essayant actuellement de comprendre la classe MigrationAutoToTector de Django)


4 Réponses :


0
votes

Vous pouvez exécuter DJANGO-ADMIN.PY SQL Impression de la SQL qui crée la table pour une ou toutes les applications, ajustez le SQL pour répondre à vos besoins et l'exécuter manuellement dans une coque de DB de votre choix! < / p>


0 commentaires

2
votes

Actuellement, il n'y a pas de place intégrée pour le faire à Django.

Je semble me souvenir d'un fil / d'un billet Django-dev / de billets qui en ont discuté, mais je ne peux pas voir pour le trouver pour le moment. Je vais mettre à jour ceci si je le trouve (et bienvenue quelqu'un d'autre à s'ils le font.)

Il y a probablement un moyen de pirater cela dans le noyau si vous en avez vraiment besoin que mal.


2 commentaires

Hmm, merci. J'ai réalisé que, probablement ce n'est pas si simple à mettre en œuvre, car la migration semble un peu difficile à ajuster l'ordre des colonnes.


Serait assez simple à faire avec un kwarg comme après = "id"



0
votes

Avez-vous besoin de contrôler l'ordre des champs dans la base de données ou de la manière dont ils sont présentés aux utilisateurs? Si ce dernier, il y a d'autres options. Par exemple, dans l'administrateur, vous pouvez contrôler l'ordre des champs avec champs ou champs .


1 commentaires

Je cherche la même chose et oui, il est important de contrôler l'ordre des champs de la base de données. Pourquoi? Pour la lisibilité. Non seulement lors de la modification de tables et de tels, mais lorsque vous éliminez également les modèles de données. J'ai une classe de méta tracemode qui fournit automatiquement créé_on, créé_by, éditéd_on et éditéd_by champs, mais ils se présentent toujours en haut de chaque table et qui n'est pas intuitive!



8
votes

sur django 1.8 cela a fonctionné pour moi:

  • Exécuter ./ Manage.py Makemigrations
  • Modifier la migration
  • réorganiser la liste Liste des champs sur migrations.createmodel .

    Je n'ai pas testé cela avec héritage cependant.


0 commentaires