古い mysql データベースから新しい django ニュースレター アプリにニュースレターの購読をインポートしようとしています。コードは次のようになります。
for _ns in CmsModuleNmsList.objects.using('old').all():
ns = Newsletter(pk=_ns.listid, title=_ns.name, slug=slugify(_ns.name), email='email@email.com', sender='Admin')
ns.save()
for _list in CmsModuleNmsListuser.objects.using('old').filter(listid=_ns.listid):
try:
_user = CmsModuleNmsUsers.objects.using('old').get(userid=_list.userid)
user = None
try:
user = User.objects.get(email=_user.email)
except:
print "Cannot find user"
Subscription(newsletter=ns, user=user, subscribed=True, email_field=_user.email, name_field=_user.username, create_date=_user.dateadded).save()
except Exception as e:
transaction.rollback()
print _user.username, 'Error', str(e)
実行すると、この行が原因でこのような例外が発生し、Subscription(newsletter=ns, user=user, subscribed=True, email_field=_user.email, name_field=_user.username, create_date=_user.dateadded).save()
取り出してuser=user
も例外は発生しません。