Just curious, which data do you not have available when using signals? You mentioned the ID but this *should* be available during post_save and pre_delete hooks, if I'm not mistaken. Also, I'd recommend caution on performing external server calls during a single HTTP Request. You might have better luck queuing this up with something like http://pypi.python.org/pypi/django-celery/
On Fri, Aug 17, 2012 at 12:41 PM, Tom <t...@distracts.co.uk> wrote: > Hi all, > > I'm new to Django, but really enjoying using it so far! > > What I'm trying to do is to export data from an admin interface, when a > record is created or updated. I'm calling another web service to tell it > the data on site [A] has changed, by using signals. > > e.g. > > @receiver(post_save, sender=Poll) > def notify_central_hub(sender, instance, created, **kwargs): > if created: > > #make a string to hold the url of the request > url = "http://www.example.com/webservice" > > #place POST data in a dictionary > post_data_dictionary = kwargs > > #encode the POST data to be sent in a URL > post_data_encoded = urllib.urlencode(post_data_dictionary) > > #make a request object to hold the POST data and the URL > request_object = urllib2.Request(url, post_data_encoded) > > #make the request using the request object as an argument, store > response in a variable > response = urllib2.urlopen(request_object) > > > I'm able to export the data this way, but I can't get the attributes of > the full model as I would as if I was using the Django shell. Particularly > important is the ID of an object, because without that I won't know which > ID to update on the remote web service. That's why I'm only dealing with > "created" objects for now. > > Could someone please advise me whether I'm going about this the right way, > or if there is actually a better way of doing this? I looked into Django > middleware but this appears to be more for changing the output at the view > layer, not the data layer. But if there is a better way of doing this, I'd > be keen to find out! > > Many thanks, > > Tom > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/django-users/-/zystPhngbI0J. > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.