Django에서 캐싱 문제로 고심하고 있습니다. 지금까지 나는 testsuite를 실행할 때만이 문제를 보았습니다. 문제는 때로는 (이것은 코드의 두 번째 호출에서 항상 발생하는 것 같습니다) 장고는 캐시를 업데이트하지 않거나 일관성이 없어집니다.Django의 ManyToManyField에서 캐싱
디버깅과 추출 된 코드이다 : I가 정확하게 다음 출력을 얻는 제 호출에
class Source(models.Model):
name = models.CharField(max_length = 50)
quality = models.IntegerField(default = 0)
class Reference(models.Model):
url = models.URLField()
source = models.ForeignKey(Source)
class Meta:
ordering = ['-source__quality']
class Issue(models.Model):
references = models.ManyToManyField(Reference)
master = models.ForeignKey(Reference, related_name = 'mastered_issue_set')
def auto_create(instance):
issue = Issue.objects.create(master = instance)
print issue.references.count(), issue.references.all()
issue.references.add(instance)
print issue.references.count(), issue.references.all()
:
0 []
1 [<Reference: test>]
그러나 auto_create
에 두 번째 호출 장고 한 참조가 생각
0 []
1 []
이 동작으로 인해 추가 코드가 분리됩니다. 어떤 아이디어가 여기에 잘못 될 수 있거나 적어도 디버깅하는 방법은 무엇입니까?
추신 : Reference
클래스에서 주문한 것으로 보이는 것 같습니다. 그러나 아직도 나에게 불분명하다.
'auto_create()'에 대한 인수를 지정할 수 있습니까? – Oleksiy
"참조"인스턴스 (새로 생성됨)입니다. –