我正在尝试为Django应用程序“webshop”创建一个模型,但我很难理解我的问题源于何处。
我的models.py
是:
从django.db导入模型
class Product(models.Model):
def __init__(self, title, quantity, description, image_url=""):
title = models.CharField(max_length=255)
self.quantity = quantity
self.title = title
self.description = description
self.image_url = image_url
def sell(self):
self.quantity = self.quantity - 1
我想用它做的是初始化它,像这样:toy1 = Product(title="Bear plush", description="Fluffy bear plush toy", quantity=10)
我可以用print(toy1.quantity)
print(toy1.title)
toy1.sell()
等等都可以,但是执行toy1.save()
会返回错误
AttributeError: 'Product' object has no attribute '_state'
在谷歌上搜索这个问题时,我发现不建议在这里使用init,但是www.example.com中提供的替代方案https://docs.djangoproject.com/en/1.11/ref/models/instances/#creating-objects都使用了一个逻辑,其中类函数的第一次调用与初始调用不同。
如果我面临的问题是由于依赖__init__
,我如何摆脱它,同时仍然能够使用toy1 = Product(title="Bear plush", description="Fluffy bear plush toy", quantity=10)
初始化对象,或者我的问题是完全不同的?
1条答案
按热度按时间rnmwe5a21#
我认为你试图创建的模型应该是这样的:
Django负责示例化,所以你不需要
__init__
位。