Как сделать поиск по тегам?
Это жесть, так делать нельзя.
Вообще много спопособов есть, но самый простой и правильный в твоем случае заюзать готовую библиотеку
https://github.com/alex/django-taggit
Ещё один способ, если у вас PostgreSQL - использовать поле типа Array, где можно хранить список строк (тегов). Django ORM позволит искать по этим тегам. Django-select2 - удобный виджет, который сочетается и работает с упомянутым полем.