Exemple de comment obtenir tous les noms de colonne d'une table avec Django ? (avec SQLite):
En utilisant Model _meta API
Pour obtenir tous les noms de champs d'une table avec Django, une solution consiste à utiliser Model _meta API:
table_name._meta.get_fields()
Par exemple, considérons une application appelée notebook avec une table nommée Article (models.py) :
class Article(models.Model):
notebook = models.ForeignKey(Notebook, null=True, blank=True, default = None,on_delete=models.CASCADE)
url = models.CharField(max_length=1000, unique=True)
title = models.CharField(max_length=1000)
content = models.TextField()
removed = models.BooleanField(default=False)
Obtenir tous les noms de champ dans une vue
from notebooks.models import Article
for e in Note._meta.get_fields():
print(e)
donne
(<django.db.models.fields.AutoField: id>,
<django.db.models.fields.related.ForeignKey: notebook>,
<django.db.models.fields.CharField: url>,
<django.db.models.fields.CharField: title>,
<django.db.models.fields.TextField: content>,
<django.db.models.fields.BooleanField: removed>)
Obtenir tous les noms de champs à l'aide du shell Django
Lancez le shell Django :
python manage.py shell
Entrez ensuite
from notebooks.models import Article
et
Article._meta.get_fields()
donne par exemple
(<django.db.models.fields.AutoField: id>,
<django.db.models.fields.related.ForeignKey: notebook>,
<django.db.models.fields.CharField: url>,
<django.db.models.fields.CharField: title>,
<django.db.models.fields.TextField: content>,
<django.db.models.fields.BooleanField: removed>)