[Fixed]-Django how to make form fields optional

18👍

Presuming you want to make last_name optional, you can use the blank attribute:

class Student(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40, blank=True)
    email = models.EmailField()

Note that on CharField and TextField, you probably don’t want to set null (see this answer for a discussion as to why), but on other field types, you’ll need to, or you’ll be unable to save instances where optional values are omitted.

18👍

You use the required argument, sent in with a False value:

email = models.EmailField(required=False)

5👍

If you want to allow blank values in a date field (e.g., DateField, TimeField, DateTimeField) or numeric field (e.g., IntegerField, DecimalField, FloatField), you’ll need to use both null=True and blank=True.

0👍

Use null=True and blank=True in your model.

-5👍

class StudentForm(ModelForm):
    class Meta:
        model = Student
        exclude = ['first_name', ...]

Leave a comment