我在一個明顯簡單的任務中遇到了一個奇怪的錯誤。Python 2.7.2 Ubuntu + Django 1.4;當「.objects.get(foo = unicodestr)」時發生深度複製遞歸錯誤「
我想查詢與Unicode字符串一個SQLite數據庫,並與以下模型:
from django.db import models
class Uebersetzung(models.Model):
artikel = models.CharField(max_length=100)
deutsch = models.CharField(max_length=100)
turk = models.CharField(max_length=100)
added = models.DateTimeField(default=datetime.now)
我只使用Django的模型和API,我的查詢看起來查詢發生在一個「獨立腳本」像這樣:
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'turk.settings'
from turk.parse.models import *
...
# each is a tuple of eg. (u'das', u'Haus', u'bina')
try:
Uebersetzung.objects.get(artikel=each[0],deutsch=each[1],turk=each[2])
except Uebersetzung.DoesNotExist:
tr = Uebersetzung(artikel=each[0],deutsch=each[1],turk=each[2])
tr.save()
print "Adding \'%s %s -> %s\' to Uebersetzung" % (each[0],each[1],each[2])
即時得到這樣的錯誤:
File "/usr/lib/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
File "/usr/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
File "/usr/lib/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
File "/usr/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
File "/usr/lib/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
File "/usr/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
File "/usr/lib/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
File "/usr/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
File "/usr/lib/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
File "/usr/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
File "/usr/lib/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
File "/usr/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
File "/usr/lib/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
任何想法S'
只是一個提示:你爲什麼不使用[get_or_create(https://開頭docs.djangoproject.com/en/1.4/ref/models/querysets/#django.db.models.query.QuerySet.get_or_create)? – kosii
我會看看那個,謝謝! – enthus1ast