Виджет Select2 отображается на сайте Django Admin, но не отображается на шаблоне формы в Django4

У меня есть две объектные модели, NewsObject и StockObject. Объект stock является внешним ключом в объекте news.

class stockObject(models.Model):
    stock_name = CharField(max_length=100, blank=True, null=True)
    stock_tag = CharField(max_length=100, blank=True, null=True)

    def __str__(self):
        return self.stock_name

class newsObject(models.Model):
    title = CharField(max_length=100, blank=True, null=True)
    body = TextField(blank=True, null=True)
    stock = ForeignKey(stockObject, on_delete=models.SET_NULL, blank=True, null=True)

Я использовал свойство autocomplete_fields в классе ModelAdmin, так как мне нужен выпадающий список акций в новостях с возможностью поиска. Я также добавил search_fields в модель ModelAdmin для акций, как указано в документации.

Вот как выглядит мой файл admin.py:

class stockAdmin(admin.ModelAdmin):
    list_display = ['stock_name', 'stock_tag']
    search_fields = ['stock_name']

class newsAdmin(admin.ModelAdmin):
    list_display = ['title', 'body', 'stock']
    search_fields = ['title', 'body', 'stock']
    autocomplete_fields = ['stock']

Теперь проблема в том, что я получаю выпадающий список на сайте Django Admin для этого поля, но это только выпадающий список (без возможности поиска) на реальном экране шаблона. У меня есть базовое представление, которое вызывает шаблон, примерно так:

Views.py

def createNews(request):
    form = NewsForm()
    if request.method == 'POST':
        form = NewsForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('/backoffice/')

    context = {'form' : form}
    return render(request, 'NewsForm.html', context)

А NewsForm.html это:

{% extends "base.html" %}

{% load static %}
       {% block content %} 
       <form action="" method="POST">
           {% csrf_token %}
           {{ form }}
           <input type="submit" name="Submit">
       </form>
{% endblock %} 

Я задавался вопросом, что может быть причиной такого поведения. Пробовал множество вещей, но ни одна из них не работает. Что я могу упустить?

Изображение сайта администратора DjangoDjango Admin site image

Изображение шаблона DjangoDjango Template Image

Я думаю, что вы написали все ваши модели в camelCase, поэтому сначала измените их на PascalCase.

Второе, вы пропустили models во всех ваших моделях:

Запишите их следующим образом: добавьте models перед каждым типом данных, например:

from django.db import models

class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)

Не только datatype полей.

Вернуться на верх