【发布时间】:2021-07-23 21:45:07
【问题描述】:
所以我正在开发这个项目(一个库存应用程序)。我试图在我的视图中使用这个模型方法。在我看来,我正在尝试称呼它。
但我总是收到错误消息:“QuerySet”对象没有“get_quantities_sold”属性
这是我的模型:
generate_ref_no = str(uuid.uuid1())
class Transaction(models.Model):
business = models.ForeignKey(Business_Account, on_delete=models.CASCADE)
customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, null=True)
amount = models.FloatField()
productSold = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
quanties_of_product_sold = models.IntegerField()
transaction_date = models.DateTimeField(auto_now_add=True)
payment_method = models.CharField(choices=PAYMENT_METHOD, max_length=50)
reference_num = models.CharField(max_length=50, editable=False, default=generate_ref_no)
def __str__(self):
return f'{self.customer} '
def get_quantities_sold(self,quantities_sold):
return print(quantities_sold)
我的看法:
class TransactionView(generics.GenericAPIView):
def post(self,request, business=None):
serializer = TransactionSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
getTransaction = Transaction.objects.filter(reference_num=serializer.data['reference_num'])
getTransaction_serializer = TransactionSerializer(getTransaction, many=True)
getTransaction.get_quantities_sold(serializer.data['quanties_of_product_sold '])
return Response(data=serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(data=serializer.errors, status=status.HTTP_404_NOT_FOUND)
我正在尝试从我的事务视图中的事务模型调用“get_quantities_sold”方法,但出现错误:QuerySet 对象没有属性“get_quantities_sold”
【问题讨论】:
-
getTransaction是一个QuerySet,因此是一个 collection 项目,而不是单个项目,因此getTransaction.get_quantities_sold没有意义。
标签: python django django-models django-rest-framework django-views