В админке, если выбрать созданный тэг через shell, то в шаблоне он отображается как main.Tag.None. (main - название приложения) Как это исправить?
Всё верно выводит.
Post - это список постов, вы выводите только один. К посту у вас привязан список тегов (не ForeignKey), сталобыть вам список и выводят, который вы должны обработать.
В шаблоне добавьте
.all и увидете список тегов привязанных к даному посту.
{{ post.tag.all }}
Ну а дальше и обрабатывайте как список
{% for tg in post.tag.all %}{{ tg.title }}{% endfor %}
З.Ы. В модели поле с ManyToManyField лучше задавать имя переменной в множественном числе, то есть tags, а не tag.