Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型对象何时初始化?_Python_Django_Model_Integer_Init - Fatal编程技术网

Python Django模型对象何时初始化?

Python Django模型对象何时初始化?,python,django,model,integer,init,Python,Django,Model,Integer,Init,我在Python和Django中遇到了一个有趣的问题。 我想只要把我的代码放进去,你就会得到我想要做的 views.py: def ingredients(request): objects = Ingredient.objects.all()[:50] return render(request, 'template.html', {'objects': objects} models.py: class Ingredient(models.Model): stock

我在Python和Django中遇到了一个有趣的问题。 我想只要把我的代码放进去,你就会得到我想要做的

views.py:

def ingredients(request):
    objects = Ingredient.objects.all()[:50]
    return render(request, 'template.html', {'objects': objects}
models.py:

class Ingredient(models.Model):
    stock_by = models.IntegerField(null=False)
    unit = ""

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        unit_type = {
            1: 'Units',
            2: 'Kilograms',
            3: 'Litters'
        }
        self.unit = unit_type[IntegerField.to_python(self.cost_by)]
错误:

TypeError at /Ingredient/
to_python() missing 1 required positional argument: 'value'
(值为无)

init.py(Django框架类):


我想我想要达到的目标是显而易见的。仅仅是一个字符串属性,它将采用单位值的名称(用db中的整数表示)。

to_python
是一个实例方法,您必须从实例而不是从类中调用它

IntegerField().to_python(self.cost_by)
IntegerField().to_python(self.cost_by)