Nota:o código OP funcionará absolutamente. Nós só precisamos salvar o modelo (porque este é apenas um campo de modelo, não uma relação). Vamos ver:
>>> p = Post.objects.create(tags=[str(i) for i in range(10000)])
>>> p.tags.append("working!")
>>> p.save()
>>> working_post = Post.objects.get(tags__contains=["working!"])
<Post: Post object>
>>> working_post.tags[-2:]
[u'9999', u'working!']
Indo mais fundo
Django obtém ArrayField
como lista python
Referência de código
Tudo o que você pode fazer list, você pode fazer com ArrayField. Classificação uniforme
Django salva ArrayField
como lista python
Referência de código
Isso significa que ele salva a estrutura e os elementos da lista python.