微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django中的名称错误-视图函数中的嵌套函数-保存到数据库

如何解决Django中的名称错误-视图函数中的嵌套函数-保存到数据库

使用Django,尝试将用户的答案保存到数据库时,显示名称错误。我在视图函数中嵌套了一个函数,当我不尝试将数据保存到数据库时它可以正常工作。但是,一旦我尝试将代码放入views函数中以保存数据,就会产生此名称错误。以下是带有代码文件

models.py文件

nodelist = list(G.nodes())

forms.py文件

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User 

class ansquestions(models.Model):
    m_invested = models.CharField(max_length=100)
    p_return = models.CharField(max_length=100)
    years = models.CharField(max_length=100)
    inflation_yes_no = models.CharField(max_length=100)
    r_output = models.TextField(default=True)
    date_answered = models.DateTimeField(default=timezone.Now)
    author = models.ForeignKey(User,on_delete=models.CASCADE)

views.py文件 (注意:fvinvestment函数嵌套在investmentfvcalc函数下。在此处粘贴时,它不会显示为缩进investmentfvcalc,但实际上是将fvinvestment函数缩进并嵌套在investmetncalc函数下。)

from django import forms
from .models import ansquestions

class ansquestionsForm(forms.ModelForm):
    class Meta:
        model = ansquestions
        fields = ['m_invested','p_return','years','inflation_yes_no','r_output','date_answered','author'

]

错误

运行上面的代码,会给我错误“在封装范围内赋值之前引用的自由变量'makeup_infl'的投资错误NameName at investmentfv / Investementfvcalc”,之后我会将变量“ makeup_infl”作为全局变量fvinvestment函数,它将产生错误“ NameError-未定义名称'makeup_infl'

解决方法

将fvinvestment更改为全球范围,并传入以下变量:years_i和composition_infl

def fvinvestment(years_i,makeup_infl):
    ....

这还将解决您的makeup_infl未定义的错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。