Все, у меня проблема с сигналами django.
У меня есть модель
В попытке ускорить реагирование на загрузку страниц, я разгружаю некоторую интенсивную обработку, которая должна быть выполнена с помощью вызова второго веб-сервера localhost, который у нас работает, оба используют одну и ту же базу данных. Я вижу поведение, когда вызывающий процесс может получить объект, но вызываемый процесс не может. И порт 80, и порт [порт] указывают на процессы django, работающие на одной базе данных.
В models.py
class A(models.Model):
stuff...
def trigger_on_post_save( sender, instance, create, raw, **keywords):
#This line works
A.objects.get( pk=instance.pk )
#then we call this
urlopen( r'http://127.0.0.1:[port]' +
reverse(some_view_url, args(instance_pk) ).read()
post_save.connect( trigger_on_post_save, A )
В views.py
def some_view_function( request, a_pk ):
#This line raises an object_not_found exception
A.objects.get( pk=a_pk )
Кроме того, после вызова urlopen возникает исключение, объект не существует в базе данных. Насколько я понимаю, post_save вызывался после того, как объект был сохранен и записан в базу данных. Это неправильно?