On Oct 24, 2008, at 12:23 PM, Brandon Taylor wrote:

>
> Hi everyone,
>
> I'm using Django 1.0, and attempting to do some comment moderation
> with Akismet. When I try to wire up a pre_save signal, I'm getting an
> error saying 'instance' is not defined. Here is my code:

You might also consider using one of the custom signals that come with  
the comment app, they are part of the comment posting process and as  
such are easier to use for some things like this:

http://docs.djangoproject.com/en/dev/ref/contrib/comments/signals/

Eric


> def moderate_comment(sender, **kwargs):
>    if not instance.id:  # <-- instance is not defined
>        entry = instance.get_content_object()
>        delta = datetime.datetime.now() - entry.pub_date
>        if delta.days > 30:
>            instance.is_public = False
>        else:
>            akismet_api = Akismet(key=settings.AKISMET_API_KEY,
> blog_url='http://%s/' % Site.objects.get_current().domain)
>
>            if akismet_api.verify_key():
>                akistmet_data = {'comment_type' : 'comment',
> 'referrer' : '', 'user_ip' : instance.ip_address, 'user-agent' : ''}
>                if
> akismet_api.comment_check(smart_str(instance.comment), akistmet_data,
> build_data=True):
>                    instance.is_public = False
>
>        email_body = '%s posted a new comment on the entry %s.'
>        mail_managers('New comment posted', email_body %
> (instance.user_name, instance.get_content_object()))
>
> models.signals.pre_save.connect(moderate_comment, sender=Comment)
>
>
> Not sure what I'm doing wrong, but I would appreciate an extra set of
> eyes.
>
> TIA,
> Brandon
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to