get_or_create를 사용하여 항목이 반복되는지 확인하기 위해 Django를 사용하고 있습니다. 지금 나는이 문제를 기본적으로 루핑 데이터 : 최대 재귀 깊이가 cmp를 초과했습니다
def insert_titles(self):
game = None
title = None
for k,v in self.data.items():
game_exists = Game.objects.all().get_or_create(game_name=v['title']) #will get RuntimeError: maximum recursion depth exceeded in cmp
print game_exists
을 보내고있어,이 cron 작업으로 실행 것 스크립트입니다, 그래서 나는 종류의 내가
을 원하는 지점에 도착하는 항목의 무리를 반복해야
while True:
try:
data = strategy.process()
filter = FilterGames(data, link)
필터 게임 코드 :
def __init__(self, data):
self.data = data
self.insert_titles()
print "init"
나는 아직 방법, 확실하지 내가 그것을 잘못된 방법을 찾고 있어요 파이썬 경험이있어 아마 때문에, 플레이 프레임 워크와 과거에 이런 짓을했습니다 그것이 나에게 줄 때 진행한다. 그의 오류 유형. 구조 변경을 조금이라도 시도해 보았습니다. 이상한 점은 game_name
에서 string
을 사용하면 예상대로 작동하지만 루프에서 수집 한 데이터를 사용하면 오류가 발생하기 시작한다는 것입니다.
마지막으로, 나는이 유형의 오류를 수정하는 방법을 알고 싶습니다. 그리고 왜 그렇게하는지 더 잘 이해하고 싶습니다.
'insert_titles' 함수가 전체 함수에 게시 되었습니까? 이 질문과 같이 순환 참조를 생성 할 때'v' 변수를 조작하지 않으시겠습니까? http://stackoverflow.com/questions/14246081/runtimeerror-maximum-recursion-depth-exceeded-in-cmp- when-working-with-lists –
@DanHoerst Trace 당신이 http://pastebin.com/pC5q7FBJ를 요청했는데 아무 것도 전혀 조작하지 않았습니다. 'get_or_create'로 그 줄을 지우면 모든 것이 잘 동작합니다. 그래서 거기에 django.db "견과류"있어 특정 루프가 잘못된 가정합니다 – allenskd
이 경우에만 cron 작업에서 실행될 때 발생하거나 셸에서 발생합니까? 마찬가지로, 당신이 장고 껍데기를 부팅하고'Game.objects.get_or_create (game_name = 'somename')'을하면, 당신은 무엇을 얻습니까? –