Как отобразить данные из mysql на сайте django?

Есть у меня две базы:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    },
    'mysql_db': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'ИМя2',
        'USER': 'ИМя1',
        'PASSWORD': 'Пароль',
        'HOST': 'Айпи',
        'PORT': 'Порт',
    }
}

пытаюсь в странице отобразить информацию из БД mysql. но показывает ошибку:

Internal Server Error: /show_table/
Traceback (most recent call last):
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\backends\utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\backends\mysql\base.py", line 76, in execute
    return self.cursor.execute(query, args)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\MySQLdb\cursors.py", line 179, in execute
    res = self._query(mogrified_query)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\MySQLdb\cursors.py", line 330, in _query
    db.query(q)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\MySQLdb\connections.py", line 280, in query
    _mysql.connection.query(self, query)
MySQLdb.ProgrammingError: (1146, "Table 'CreateSite.webApp_secondmodel' doesn't exist")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\USER\Documents\projects\webTemplate\main\webApp\views.py", line 79, in show_table
    print(all_objects)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\models\query.py", line 360, in __repr__
    data = list(self[: REPR_OUTPUT_SIZE + 1])
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\models\query.py", line 366, in __len__
    self._fetch_all()
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\models\query.py", line 1949, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\models\query.py", line 91, in __iter__
    results = compiler.execute_sql(
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\models\sql\compiler.py", line 1623, in execute_sql
    cursor.execute(sql, params)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\backends\utils.py", line 122, in execute
    return super().execute(sql, params)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\backends\utils.py", line 79, in execute
    return self._execute_with_wrappers(
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\backends\utils.py", line 92, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\backends\utils.py", line 100, in _execute
    with self.db.wrap_database_errors:
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\backends\utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\django\db\backends\mysql\base.py", line 76, in execute
    return self.cursor.execute(query, args)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\MySQLdb\cursors.py", line 179, in execute
    res = self._query(mogrified_query)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\MySQLdb\cursors.py", line 330, in _query
    db.query(q)
  File "C:\Users\USER\forTemplate\env\lib\site-packages\MySQLdb\connections.py", line 280, in query
    _mysql.connection.query(self, query)
django.db.utils.ProgrammingError: (1146, "Table 'CreateSite.webApp_secondmodel' doesn't exist")

Ясно и понятно, что такой схемы CreateSite.webApp_secondmodel в БД Mysql не существует, потому и выдает такую ошибку. но как мне отобразить данные из существующей таблицы в mysql? и как мне отобразить в странице такой запрос из mysql:

SELECT * FROM ИМя2.table_ericsson_2g_v WHERE Reg IN ('BU','VV','ZB','AM') LIMIT 5

Сервер БД Mysql находится удаленно и подключаюсь удаленно. у меня получалось в скриптах получить данные из той БД библиотекой mysql-connector-python==9.1.0. У джанго другая так полагаю библиотека используется только mysqlclient==2.2.7. ее и использую. не знаю, что может и есть способы подянуть другой библиотекой. данные из второй базы sqlite3 в другой странице отображаются корректно. Код в models:

from django.db import models
from django_ckeditor_5.fields import CKEditor5Field
class Content(models.Model):
    title = models.CharField(max_length=255, verbose_name="Название")
    #content = models.CharField(max_length=255, verbose_name="Контент")
    content = CKEditor5Field('Контент', config_name='extends')
    idcard = models.CharField(max_length=255, verbose_name="Карта")
    idmenu = models.CharField(max_length=255, verbose_name="Меню")             
    author = models.CharField(max_length=255, verbose_name="Автор поста")
    date = models.CharField(max_length=255, verbose_name="Дата поста")
    def __str__(self):
        return self.title
class SecondModel(models.Model):
    # Поля вашей модели
    field1 = models.CharField(max_length=100)
    field2 = models.CharField(max_length=100)
    #class Meta:
        # Указывает, что эта модель использует вторую базу данных
    #    using = 'mysql_db'
        # Если вы хотите указать имя таблицы в базе данных
    #    db_table = 'table_ericsson_2g_v'

код во views:

from django.shortcuts import render
from .models import Content, SecondModel
from rest_framework import viewsets
from .serializers import ContentSerializer

#from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.renderers import TemplateHTMLRenderer

# Create your views here.
class ContentViewSet(viewsets.ModelViewSet):
    queryset = Content.objects.all()
    serializer_class = ContentSerializer

class MyDRFHTMLView(APIView):
    renderer_classes = [TemplateHTMLRenderer]
    def get(self, request):
        print('Кто-то зашёл на главную!')
        contents_list = Content.objects.all() # Получить все объекты из модели        
        #print(contents_list)
        json_data = {}
        for raw in contents_list:
            #print(raw.idmenu)
            if raw.idmenu not in json_data:
                json_data[raw.idmenu] = []
            json_data[raw.idmenu].append({
                'id': raw.id,
                'title': raw.title,
                'content': raw.content,
                'idcard': raw.idcard,
                'idmenu': raw.idmenu,
                'author': raw.author,
                'date': raw.date
            })
        return render(request, 'webPages/index.html', {'json_data': json_data})
    
class MyDRFHTMLView2(APIView):
    renderer_classes = [TemplateHTMLRenderer]
    template_name = 'webPages/indexV2.html' # Specify the template
    #def get(self, request, *args, **kwargs):
    def get(self, request):
        print('Кто-то зашёл на главную!')
        return render(request, 'webPages/indexV2.html')


#def display_second_data(request):
#    # Извлекаем все объекты из SecondModel
#    #second_data = SecondModel.objects.all()
#    second_data = SecondModel.objects.using('mysql_db').all()
#    print(second_data)
#    context = {'data': second_data}
#    return render(request, 'webPages/indexV3.html', context)

def show_table(request):
    # Получить все объекты из таблицы
    all_objects = SecondModel.objects.using('mysql_db').all()
    print(all_objects)
    context = {'items': all_objects}
    return render(request, 'webPages/indexV3.html', context)

Код urls:

from django.urls import include, path
from . import views
from rest_framework.routers import DefaultRouter
from .views import ContentViewSet, MyDRFHTMLView, MyDRFHTMLView2
router = DefaultRouter()
router.register(r'content', ContentViewSet)
urlpatterns = [
    #path('', include(router.urls)), #/urls/
    path('', include(router.urls)), #/urls/
    path('info/', MyDRFHTMLView.as_view(), name='info'),
    path('info2/', MyDRFHTMLView2.as_view(), name='info2'),
    #path('data/', views.get, name='display_data'),
    path('show_table/', views.show_table, name='show_table'),
]

код html:

    <h1>Данные из второй базы данных</h1>
    <ul>
        {% for item in items %}
            <li>{{ item.field1 }} - {{ item.field2 }}</li>
        {% endfor %}
    </ul>

Есть такое предчувствие что использую не правильно models. в admin.py нужно было добавлять строку admin.site.register(SecondModel)? я ее добавил после миграции

python manage.py makemigrations
ython manage.py migrate
Вернуться на верх