Django получает ошибку NoneType при запросе тегов с помощью TaggableManager

Я создаю блог на Django и использую django-taggit для поиска похожих постов. Я получаю

аргументint() должен быть строкой, байтоподобным объектом или числом, а не 'NoneType'

Когда я запрашиваю пост (представление PostDetail), в котором есть только один тег, который не использовался в других постах. Если пост имеет тег, который использовался ранее, или два тега, один новый, а другой использовался ранее, все в порядке. Проблема может быть связана с тем, что я запрашиваю обратный внешний ключ, поэтому 'None' появляется для тегов, не имеющих ни одного поста (источник документация Django по values_list)

models.py

class Post(models.Model):
    tags = TaggableManager(
        help_text="We suggest to use no more than 3 tags to improve search results")

views.py

class PostDetail(View):
def get(self, request, slug, *args, **kwargs):
    # fetch post by similarity
    post_tags_ids = post.tags.values_list('id', flat=False)
    similar_posts = Post.objects.filter(tags__in=post_tags_ids)\
        .exclude(id=post.id)
    similar_posts = similar_posts.annotate(same_tags=Count('tags'))\
        .order_by('-same_tags')

Я следую примеру, показанному в книге Django by Example, вот repository.

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

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