django admin muitos-para-muitos modelos intermediários usando através de = e filter_horizontal

É assim que meus modelos parecem:

<code>class QuestionTagM2M(models.Model):
    tag = models.ForeignKey('Tag')
    question = models.ForeignKey('Question')
    date_added = models.DateTimeField(auto_now_add=True)

class Tag(models.Model):
    description = models.CharField(max_length=100, unique=True)

class Question(models.Model):
    tags = models.ManyToManyField(Tag, through=QuestionTagM2M, related_name='questions')
</code>

Tudo o que eu realmente queria fazer era adicionar um registro de data e hora quando um determinado relacionamento de muitos foi criado. Faz sentido, mas também adiciona um pouco de complexidade. Além de remover a funcionalidade .add () [apesar do fato de que o único campo que estou realmente adicionando é auto-criado, então tecnicamente não deveria interferir mais nisso]. Mas eu posso viver com isso, como eu não me importo de fazer o extraQuestionTagM2M.objects.create(question=,tag=) em vez disso, se isso significa obter a funcionalidade adicional de registro de data e hora. Meu problema é que eu realmente adoraria ser capaz de preservar meufilter_horizontal Widget de javascript no admin. Eu sei que os documentos dizem que eu posso usar um inline em vez disso, mas isso é muito pesado porque não há campos adicionais que seriam na inline além da chave estrangeira para oTag de qualquer forma. Além disso, no esquema maior do meu esquema de banco de dados,Question objetos já são exibidos como inline na minha página de administração, e como o Django não suporta in-line aninhados no admin [yet], não tenho como selecionar tags para uma determinada questão. Existe alguma maneira de substituirformfield_for_manytomany(self, db_field, request=None, **kwargs) ou algo semelhante para permitir o meu uso do bacanafilter_horizontal widget e a criação automática dodate_added coluna para o banco de dados? Isso parece algo que o django deve ser capaz de fazer nativamente, desde que você especifique que todas as colunas no intermediário são criadas automaticamente (exceto as chaves estrangeiras), talvez comauto_created=True? ou algo parecido

questionAnswers(3)

yourAnswerToTheQuestion