Tengo un error en mi proyecto Django. Cuando ejecuto el comando 'python manage.py makemigrations', aparece el error.
ValueError: no se puede serializar: <objeto django.db.models.query_utils.DeferredAttribute en 0x000001B5A3078940>
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)No puede asignar un valor predeterminado a archivado con default=Product.price
Así que cambia esta línea
price = models.IntegerField(default=Product.price)para
price = models.IntegerField(default=0)y si desea establecer el precio del pedido a partir del precio del producto, puede anular el método save()
def save(self, *args, **kwargs): if self.product is not None: self.price = self.product.price super().save(*args, **kwargs)Creo que ese problema en el atributo precio . Puede usar def save() , no por defecto.