You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模型__str__方法不生效,无法显示产品名称求助

Django模型__str__方法不生效的解决办法

你的问题出在**__str__方法的缩进错误**——这个方法被定义在了Product类的外部,并没有成为类的成员方法,所以Django无法识别并调用它来替换默认的Product object (1)显示。

修正后的代码如下:

from cgi import print_exception
from django.db import models
from django.contrib.auth.models import User
# Create your models here.


class Product(models.Model):
    user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    name = models.CharField(max_length=200, null=True, blank=True)
    # image =
    category = models.CharField(max_length=200, null=True, blank=True)
    description = models.TextField(null=True, blank=True)
    rating = models.DecimalField(
        max_digits=7, decimal_places=2, null=True, blank=True)
    numReviews = models.IntegerField(null=True, blank=True, default=0)
    price = models.DecimalField(
        max_digits=7, decimal_places=2,  null=True, blank=True)
    countInStock = models.IntegerField(null=True, blank=True, default=0)
    createdAt = models.DateTimeField(auto_now_add=True)
    _id = models.AutoField(primary_key=True, editable=False)

    # 注意缩进,需和类内其他字段/方法保持一致
    def __str__(self):
        # 优化空值情况,避免显示None
        return self.name or f"Product {self._id}"

把__str__方法缩进后放到Product类内部,Django就能正常调用它,将对象显示为对应的产品名称。如果产品名称为空,上述代码会显示类似Product 1的内容,避免出现None的情况。

内容的提问来源于stack exchange,提问作者ToddM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:30:51