Examples of how to get all field names of a table with Django (SQLite):
Using Model meta API
To get all field names of a table with Django, a solution is to use Model _meta API:
table_name._meta.get_fields()
For example let's consider an application called notebook with a table named 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)
Get all field names in a view
from notebooks.models import Articlefor e in Note._meta.get_fields():print(e)
returns
(<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>)
Get all field names using Django shell
Launch Django shell:
python manage.py shell
Then enter
from notebooks.models import Article
and
Article._meta.get_fields()
returns for example
(<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>)
References
| Links | Site |
|---|---|
| Get model's fields in Django | stackoverflow |
| Model _meta API | ocs.djangoproject.com |
| Writing your first Django app, part 2 | docs.djangoproject.com |
