python - 未绑定(bind)本地错误: local variable 'region' referenced before assignment

标签 python django

我正在尝试创建一个对象,但遇到了这个问题,但对我来说,我没有犯任何错误。

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/

相关文章:

Django复合/嵌套/子表单?

python - Django "Manager isn' t 可通过 UserProfile 实例访问”

python - 错误 : Could not find a version that satisfies the requirement pyautogui (from versions: none)

python - 如何在 Pandas 的特定列索引处插入一列?

python - 在python中使用递归函数和结构类型?

python - django 在第一个脚本运行后每天将数据保存到文件中

python - django REST framework 多源字段

python - 如何解决 Django 中的 UnicodeDecodeError?

python - 使用 Python 正则表达式拆分非重叠字符组(ORF 发现)

javascript在页面重新加载后保留值