Comment supprimer le préfixe d'une table pour un modèle Django?
- Je créer un nouveau django app(pas de projet) appelé Bussinesses, puis ajouter la classe suivante à l'models.py.
class Bussinesses(models.Model):
business_email = models.EmailField()
password = models.CharField(max_length=20)
contact_first_name = models.CharField(max_length=30)
contact_last_name = models.CharField(max_length=30)
si j'utilise Bussinesses directement, le django accès à la "bussinesses_bussinesses" de la table dans la base de données, Il est évident qu'elle n'existe pas.
Parce que la table "bussinesses" est également utilisé par une autre APPLICATION, ne peut Donc pas le renommer.
Je veux savoir comment utiliser le Djano modèle sans utiliser le préfixe de table, et je ne veux pas utiliser le raw API de base de données directement.
Merci beaucoup.
source d'informationauteur redice
Vous devez vous connecter pour publier un commentaire.
Suffit d'utiliser la modèle de méta options.
BTW entreprises est mal orthographié. Puisque vous êtes en spécifiant le nom de la table que vous n'avez pas à donner votre modèle, le même nom que la table, de sorte que si le nom de la table est mal orthographié et vous ne pouvez pas facilement résoudre ce problème, vous pouvez changer au moins le nom de votre classe à la bonne orthographe de entreprises. Je voudrais également vous débarrasser de la pluralisation, et de le rendre
class Business
. Enfin, il n'est pas rare que lors de l'utilisation de Django ou de Rails, sur une base de données existante à la nécessité de définir un nom de table personnalisé pour chaque table.Vous pouvez spécifier le nom de la table dans le modèle de la Méta-classe, à l'aide de la
db_table
propriété.Aussi, si vous êtes à l'aide d'une table de base de données qui existe déjà, vous pouvez également jeter un oeil à la
réussi
de la propriété. Après la définition d'un modèle non gérésyncdb
ne l'affectera pas (si vous réinitialisez votre application, par exemple), mais vous pouvez toujours utiliser l'ORM de Django normalement.vous pouvez réellement définir le nom de la table manuellement à l'aide de la méta-classe, plus de détails ici:
https://docs.djangoproject.com/en/dev/ref/models/options/