What are Django model field types?
Why Interviewers Ask This
This is a classic screening question for Django roles. Hiring managers ask it early in interviews to gauge your baseline understanding and determine if you can communicate technical concepts clearly.
Answer
Django provides many model field types mapping to database column types: String fields: CharField(max_length=200) — VARCHAR; TextField() — TEXT (unlimited); EmailField() — CharField with email validator; URLField(); SlugField() — URL-friendly slug; UUIDField(default=uuid.uuid4). Numeric fields: IntegerField(); BigIntegerField(); PositiveIntegerField(); FloatField(); DecimalField(max_digits=10, decimal_places=2) — for money; SmallIntegerField(). Boolean: BooleanField(default=False); NullBooleanField() (deprecated — use BooleanField(null=True)). Date/Time: DateField(auto_now_add=True) — set on creation; DateTimeField(auto_now=True) — update on every save; TimeField(); DurationField(). File: FileField(upload_to="uploads/"); ImageField(upload_to="images/") — requires Pillow. Choice fields: CharField(max_length=10, choices=[("draft","Draft"),("published","Published")]). Relationship fields: ForeignKey(User, on_delete=models.CASCADE, related_name="articles"); ManyToManyField(Tag, blank=True); OneToOneField(User, on_delete=models.CASCADE). JSON: JSONField(default=dict) — native JSON storage (PostgreSQL, MySQL 8+, SQLite 3.9+). Generic relations: GenericForeignKey — polymorphic FK. Common options: null=True (database NULL), blank=True (form validation), default=value, unique=True, db_index=True, verbose_name="Human Name".
Pro Tip
Demonstrate both theoretical understanding and practical experience. Say what it is, then give an example of how you actually used it in a Django codebase.
Previous
What is Django's manage.py and useful commands?
Next
What is Django DRF serializers in depth?