И, кстати, related_name вообще стоит переместить в default_related_name в Meta, начиная с того же Item.
Сразу скажу: к абстрактному классу мы не обращаемся, и вообще сейчас предполагали бы по логике вещей обращаться только к items (принадлежащим к какой-то категории или тегу) и tags (для какого-то item'а)
А ещё default_related_name для Tag, я об этом в самом конце упоминал
У нас связь m2m, мы можем захотеть обращаться к набору тегов для конкретного Item`а
Вот это говорит о том, что в документацию не смотрел, из-за чего и понимания этой штуки нет:
Так-то
related_name
у нас для красоты обращения к связанным моделям используется, чтобы потом обратиться к товарам категории, например, не черезcategory.item_set
, а через более человечноеcategory.items
(что и при выборе ему названия стоит учитывать, перепроверь у себя везде) https://docs.djangoproject.com/en/3.2/ref/models/fields/#django.db.models.ForeignKey.related_name https://docs.djangoproject.com/en/3.2/ref/models/options/#default-related-nameИ, кстати,
related_name
вообще стоит переместить вdefault_related_name
в Meta, начиная с того жеItem
.Сразу скажу: к абстрактному классу мы не обращаемся, и вообще сейчас предполагали бы по логике вещей обращаться только к items (принадлежащим к какой-то категории или тегу) и tags (для какого-то item'а)