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

Django报错:Field name `get_thumbnail` is not valid for model `Product` 求助

错误原因

Product模型中定义的缩略图获取方法名为get_thumbnails(复数形式),但ProductSerializer的字段列表中填写的是get_thumbnail(单数形式),二者名称不匹配,Django REST Framework的模型序列化器无法在Product模型上找到对应名称的字段或方法,因此抛出ImproperlyConfigured配置错误。

修复方案

以下两种方案任选其一即可:

  • 方案1:修改models.py中Product类的方法名,和序列化器字段名保持一致
# 将原方法名get_thumbnails改为单数形式
def get_thumbnail(self):
    if self.thumbnail:
        return 'http://127.0.0.1:8000' + self.thumbnail.url
    else:
        if self.image:
            self.thumbnail = self.make_thumbnail(self.image)
            self.save()
            return 'http://127.0.0.1:8000' + self.thumbnail.url
        else:
            return ''
  • 方案2:修改serializers.py中ProductSerializer的字段配置,和模型方法名保持一致
class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = (
            "id",
            "name",
            "get_absolute_url",
            "description",
            "price",
            "get_image",
            "get_thumbnails", # 改为复数形式和模型方法名匹配
        )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:09:02