拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 django:ValueError-无法序列化

django:ValueError-无法序列化

白鹭 - 2022-02-12 2089 0 0

我的 Django 项目有错误。当我运行“python manage.py makemigrations”命令时,会出现错误。

ValueError: Cannot serialize: <django.db.models.query_utils.DeferredAttribute object at 0x000001B5A3078940>

模型.py

class Order(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    customer = models.ForeignKey(Customer,
                                 on_delete=models.CASCADE, null=True, blank=True)
    quntity = models.IntegerField(default=1)
    price = models.IntegerField(default=Product.price)
    address = models.CharField(max_length=200)
    phone = models.CharField(max_length=13)
    date = models.DateTimeField(auto_now=True)
    print(Product.price)

    def __str__(self) -> str:
        return self.product.name

管理档案

from django.contrib import admin
from .models import Order

# Register your models here.


class OrderAdmin(admin.ModelAdmin):
    models = Order
    list_display =['product','customer','quntity','price','address','phone','date']

admin.site.register(Order,OrderAdmin)

这是我的错误页面:- django:ValueError - 无法序列化

uj5u.com热心网友回复:

我认为价格属性的问题。您可以使用 def(save),而不是默认

uj5u.com热心网友回复:

您不能为归档指定默认值 default=Product.price

所以改变这一行

price = models.IntegerField(default=Product.price)

price = models.IntegerField(default=0)

如果您想从产品价格设定订单价格,您可以覆写 save() 方法

def save(self, *args, **kwargs):
    if self.product is not None:
        self.price = self.product.price

    super().save(*args, **kwargs)
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *