我正在尝试创建一个对象,但遇到了这个问题,但对我来说,我没有犯任何错误。
def handle(self, *args, **options):
for entry in get_dataset():
oblast = Place.objects.get_or_create(name=entry.get('OBL_NAME'))
if entry.get('REGION_NAME') is not None:
region = Place.objects.get_or_create(name=entry.get('REGION_NAME'),
parent=oblast)
if entry.get('CITY_NAME') is not None:
city = Place.objects.get_or_create(name=entry.get('CITY_NAME'),
parent=region)
我不明白为什么区域变量不起作用
最佳答案
在你的最后一部分中,你有
city = Place.objects.get_or_create(..., parent=region)
如果第一个 if
为 false,则变量 region
似乎未定义(代码执行永远不会为 region
赋值) > 在这种情况下)。
也许您需要在第一个 if
之外初始化变量(可能像 region = None
或在第一个 if
之前的东西) 。
以下是如何执行此操作的示例,但确切的方法取决于代码的其余部分:
oblast = Place.objects.get_or_create(name=entry.get('OBL_NAME'))
region = None
if entry.get('REGION_NAME') is not None:
region = ...
if entry.get('CITY_NAME') is not None:
city = Place.objects.get_or_create(
name=entry.get('CITY_NAME'),
parent=region)
关于python - 未绑定(bind)本地错误: local variable 'region' referenced before assignment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55849636/