Django ForeignKey: почему результат None?

Пытаюсь сделать что-то наподобие JOIN, но только на Django. Для этой цели использую ForeignKey для связи двух моделей. Вот минимально воспроизводимый пример.

models.py

from django.db import models

class Implement(models.Model):
    implement_name = models.CharField(max_length=255, blank=True)

class Chatbot(models.Model):
    chatbot_name = models.CharField(max_length=255)
    implement_name = models.ForeignKey(Implement, on_delete=models.SET_NULL, null=True)

views.py

from django.shortcuts import render
from django.http import HttpResponse

from .models import Chatbot
from .models import Implement

def show_view(request):
   shows = Chatbot.objects.select_related('implement_name')
   print(f'Всего объектов: {shows.count()}')
   for show in shows:
       print(f'{show.chatbot_name} - {show.implement_name}')
   return HttpResponse("Данные выведены в консоль!")

def add_view(request):
    chatbot_name = "My Chatbot Name"
    mychatbot = Chatbot(chatbot_name = chatbot_name)
    mychatbot.save()

    implement_name = "My Implement Name"
    myimplement = Implement(implement_name = implement_name)
    myimplement.save()

    return HttpResponse("Данные добавлены!")

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('add/', views.add_view, name='add'),
    path('show/', views.show_view, name='show'),
]

Первым делом вызываю add_view, добавляя данные в БД. Потом show_view, но вместо ожидаемого результата My Chatbot Name - My Implement Name получаю My Chatbot Name - None, т.е. вместо {show.implement_name} выводит в консоль None. Это при том, что данные успешно добавляются. В чем кроется проблема?


Ответы (0 шт):