Форма Django не отображает виджет

Я не могу понять, почему виджет формы django не отображается в браузере.

Это моя форма:

from django import forms
from .models import RealEstateTax

class CreateRealEstateForm(forms.ModelForm):
    class Meta: 
        model = RealEstateTax
        fields = ['invoice_number',]
        widget = {
            'invoice_number': forms.Textarea(attrs={'class': 'form-control', 'placeholder': 'Text goes here'}),
        }

Просто в целях тестирования я переназначил поле как Textarea и присвоил ему класс, в котором текст должен отображаться красным цветом.

Это шаблон:

{% extends 'main.html' %}
{% load static %}

{% block title %} Create Realestate Tax {% endblock %}

{% block content %}

<style>
    .form-control {
        color: red;
    }
</style>


<form method="post">
    <div class="form-group">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit" class="btn btn-info">Send</button>
    </div>
</form>


{% endblock %}

Когда я осматриваю элемент в браузере, нет никакого класса, это не Textarea и текст не красный:

Inspected element in the browser

Вот что я указал в представлении:

from realestate.models import RealEstate
from django.shortcuts import render, redirect
from django.http import HttpResponse
from .models import *
from django.db.models import Sum
from realestate.models import RealEstate
from .forms import CreateRealEstateForm

def create_real_tax(request):
    form = CreateRealEstateForm
    if request.method == 'POST':
        form = CreateRealEstateForm(request.POST)
        if form.is_valid():
            form.save()

    print(form.base_fields)
    context = {'form':form}
    return render(request, 'billing/create_real_tax.html', context)

Надеюсь, вы поможете мне разобраться в этом вопросе.

Заранее большое спасибо!

Попробуйте заменить form = CreateRealEstateForm на form = CreateRealEstateForm(). В настоящее время вы отображаете форму, только если запрос является POST-запросом, и просто ссылаетесь на класс, когда запрос является GET.

Дополнительно попробуйте изменить форму на:

class CreateRealEstateForm(forms.ModelForm):
    class Meta: 
        model = RealEstateTax
        fields = ['invoice_number',]
        widget = {
            'invoice_number': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Text goes here'}),
        }

Попробуйте, пожалуйста, изменить виджет на виджеты следующего вида:

widgets = {
            'invoice_number': forms.Textarea(attrs={'class': 'form-control', 'placeholder': 'Text goes here'}),
        }
Вернуться на верх