EmailField — Django Models

Python Methods and Functions


 field_name = models.EmailField (max_length = 254,  ** options ) 

EmailField has one optional required argument:


The maximum length (in characters) of the field. Maximum max_length applies at the database level and when validated by Django using MaxLengthValidator .

Django EmailField Model Explained

EmailField illustration using example. Consider a project named pythonengineering that has an application named geeks .

Refer to the following articles to check how to create a project and an app in Django.

Enter the following code into the file of the geeks application.

from django.db import models

from django.db.models import Model

# Create your models here.


class GeeksModel (Model):

geeks_field = models.EmailField (max_length = 254 )

Add the geek app to INSTALLED_APPS

# App definition



  'django.contrib.admin' ,

'django.contrib.auth' ,

'django.contrib.contenttypes' ,

'django.contrib.sessions' ,

'django.contrib.messages' ,

'django.contrib.staticfiles' ,

'geeks' ,


Now when we run makemigrations from the terminal,

 Python makemigrations 

A new folder named migrations will be created in the geeks directory with a file named 0001_initial. py

# Generated by Django 2.2.5 at 2019-09-25 06:00


from django.db import migrations, models


class Migration (migrations.Migration):


initial = True


  dependencies = [



operations = [

migrations.CreateModel (

name = ' GeeksModel' ,

fields = [

( 'id'

mo dels.AutoField (

auto_created = True ,

primary_key = True ,

serialize = False

verbose_name = ' ID'


( 'geeks_field' , models.EmailField (max_length = 254 )),




Now run,

 Python migrate 

So the geeks_field EmailField created when you run migrations in the project. This is the field to store the email address in the database.

How to use EmailField?

EmailField is used to store the email address in the database. You can store an email id from any domain. Let's try to save an instance of the email id in the model created above.

# model import
# from a geek app

from geeks.models import GeeksModel

# create string

d = " [email protected] "

# instantiate
# GeeksModel

geek_object = GeeksModel.objects.create (geeks_field =   d) ()

Now let's check this on the admin server. We have created an instance of GeeksModel. 

Field options

Field options — they are arguments given to each field to apply some constraint or to convey a particular characteristic to a particular field. For example, adding the null = True argument to the EmailField will allow it to store empty values ​​for that table in a relational database. 
Here are the field options and attributes that EmailField can use.

Field Options Description
Null If True , Django will store empty values ​​as NULL in the database. Default is False.
Blank If True , the field is allowed to be blank ... Default is False.
Choices An iterable (eg, a list or tuple) of 2-tuples to use as choices for this field.
Default The default value for the field. This can be a value or a callable object. If callable it will be called every time a new object is created.
help_text Extra “help” text to be displayed with the form widget. It's useful for documentation even if your field isn't used on a form.
primary_key If True, this field is the primary key for the model .
Unique If True, this field must be unique throughout the table.