2013-07-17 2 views
-2

J'ai un modèle simple de django:Comment ajouter des champs de modèle django après définition

class Country(models.Model): 
    name=models.CharField(max_length=500) 
    iso_alpha3=models.CharField(max_length=3) 

Je dois ajouter un nouveau champ « default_city » après l'initialisation de la classe. Il a déjà été ajouté dans la base de données. Comment cela peut-il être fait?

Nous vous remercions à l'avance

UPD: Voici ce que je veux:

class Country(models.Model): 
    name=models.CharField(max_length=500) 
    iso_alpha3=models.CharField(max_length=3) 
    default_city=VerboseForeignKey(City,display_fields=["name"]) 

class City(models.Model): 
    name=models.CharField(max_length=200) 
    country=VerboseForeignKey(Country,display_fields=["name"]) 

Mais je ne peux pas le faire parce que je reçois un NameError: nom « Ville » est pas définie

+1

Que voulez-vous dire, "après l'initialisation"? Donne un exemple. –

+0

Vous voulez dire que vous avez ajouté manuellement la colonne à la base de données et que vous souhaitez maintenant accéder à cette colonne à partir du modèle? –

+0

Vous voulez dire 'default_city' est une autre colonne qui est ajoutée à la table de pays, mais elle n'est pas présente dans Model. Maintenant, vous voulez l'ajouter dans la classe du modèle. Ai-je raison? – sandeep

Répondre

0

Il semble que mon problème initial était dans les clés étrangères circulaires et des sujets similaires ont déjà été répondus.

La solution est d'utiliser des guillemets pour le modèle:

default_city=VerboseForeignKey('City',display_fields=["name"]) 

Sujets similaires:

Django models.py Circular Foreign Key

Django App Dependency Cycle

Questions connexes