2016-08-15 28 views
0

这就是我的模型的样子。我无法通过覆盖任一模型的保存方法来进行验证。Django-Taggit在保存之前验证新添加的标签

class NotificationListTag(TaggedItemBase): 
    content_object = models.ForeignKey('Mailer') 


class Mailer(models.Model): 

    from_email = models.CharField(max_length=255) 
    to_emails = TaggableManager(
     through=NotificationListTag, 
     blank=True, 
     verbose_name='To Emails', 
     help_text='Space separated email ID' 
    ) 

如何在保存之前验证每个新添加的标签。我错过了什么东西。

+0

我认为你在对这段代码进行“匿名化”时犯了一些错误:1)ParentalKey指的是UnchainedMailer,而不是Mailer; 2)如果您使用的是ParentalKey,则还需要在Mailer上使用ClusterableModel和ClusterTaggableManager;否则,ParentalKey应该只是一个ForeignKey。 (我建议试着让这个工作只用一个普通的ForeignKey - 这样一来,移动部件就少了)。 – gasman

+0

@gasman通过ForeignKey您是否想要使用自定义标签来实现像这样的http://django-taggit.readthedocs.io/en/latest/custom_tagging.html#custom-tag? –

+0

@gasman所以我试着切换到ForeignKey,但我仍然无法拦截正确的保存方法。我想要检查的标签总是被创建。 w there中有一种方法可以在表单级别拦截它吗? –

回答

0

我最终为标记自动填充建议创建了一个自定义API,它只提示有效的名称。

默认情况下,您可以覆盖tagit.js调用wagtail,以将自定义自动填充网址传递给它。这样,用户输入值后就不必进行验证。

相关问题