Q:

Showing ManyToManyField in Django Admin Site

I'm going through the Mozilla's django tutorial. They're basically creating a public library. They do not really talk about ManyToMany relationships, and have set it up so that one book can only have one author. 
While going through this tutorial, I decided to instead of copying their local library, to go ahead and try to create the basic functionality of IMDB. So that I do not end up just basically copying and pasting the code and not learning anything.
I have set it up in a way that a show can have many creators using the ManyToMany field. In my class Creator I have two variables first_name and last_name. I have another class Show that has a bunch of other variables. 
Now inside my admin.py of the app called show, I want it so that in my ShowAdmin, it will display the creators in the admin table. The problem lies in the fact that Django does not support ManyToMany because it's a huge load to query. 
Now my possible solution is to:
1) create an empty array
2) loop through the first_name array and add it to the empty array.
3) loop through the last_array and add it to the empty array
4) then join the array to get my desired result of "last_name, first_name" in the admin table.

Before I get started on this, I was wondering if there is a much easier way to go about this? I don't know too much about python and django, (or much about programming in general) so if possible can you ELI5 ? 
Here are my models and my admin:
Admin.py:
from django.contrib import admin
from .models import Show, Creator, Cast, Language, Genre

class ShowAdmin(admin.ModelAdmin):
    list_display =('title','language','display_genre', 'display_creator')

# Register your models here.
admin.site.register(Show, ShowAdmin)
admin.site.register(Creator)
admin.site.register(Cast)
admin.site.register(Language)
admin.site.register(Genre)

Models.py (As for my models, is there anything I am doing wrong or that will give me a lot of trouble down the line?)
from django.db import models
from django.urls import reverse

class Genre(models.Model):
    name = models.CharField(max_length=200, help_text="Enter a show genre (e.g. Action, Drama, etc.)")

    def __str__(self):
        return self.name

class Language(models.Model):
    name = models.CharField(max_length=200, help_text="Enter a show's language (e.g. English, Japanese, etc.)")

    def __str__(self):
        return self.name

class Creator(models.Model):
    first_name = models.CharField(max_length=100)
    last_name  = models.CharField(max_length=100)

    class Meta:
        ordering = ['first_name','last_name']

    def get_absolute_url(self):
            return reverse('author-detail', args=[str(self.id)])

    def __str__(self):
        return '{0}, {1}'.format(self.first_name,self.last_name)

class Show(models.Model):
        title = models.CharField(max_length=200)
        creator = models.ManyToManyField(Creator, help_text="Select a creator(s)")
        genre = models.ManyToManyField(Genre, help_text='Select a genre for this book')
        language = models.ForeignKey('Language', on_delete=models.SET_NULL, null=True)
        summary = models.TextField(max_length=1000, help_text='Enter a brief description of the show', null=True)
        cast = models.ManyToManyField(Cast, help_text="Select cast")

        def __str__(self):
            return self.title

        def get_absolute_url(self):
            return reverse('show-detail', args=[str(self.id)])

        def display_genre(self):
            return ', '.join([ genre.name for genre in self.genre.all()[:3] ])

        def display_creator(self):
            return ', '.join([creator.first_name for creator in self.creator.all()[:3]])

        display_creator.short_description = 'Creator'
        display_genre.short_description = 'Genre'

Bonus Questions (if you have some time): Adding shows through admin is definitely a possibility, but not very efficient in my opinion. In my working model, if I want to add creator(s) to a show, I have to go through a lot of selections and select the correct person. Now let's say that my database has 1000 creators, it's not very practical to scroll down all the choices and find the correct person. Now granted that I am only on part 4 of the tutorial (AdminSite), is there a more practical way of adding creators to a show? 
I know this post is really long, and I am sorry about that. But I just wanted to say Thank you so much for your time. I really appreciate it.

A:

You can use a generator expression with join():
def get_creator_names(self, obj):
    return ', '.join('{} {}'.format(creator.first_name, creator.last_name)  for creator in obj.creators.all()

