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

Django中PostForm对象报错'cleaned'属性不存在问题求助

Django表单AttributeError错误解决:'PostForm'对象无'cleaned'属性

错误原因

你在clean_slug方法里错误使用了self.cleaned['slug'],Django表单中存储清洗后字段值的正确属性是cleaned_data,而非cleaned,拼写错误导致触发AttributeError。

修正后的代码

from django import forms
from .models import Post

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = '__all__'
    
    def clean_slug(self):
        # 替换cleaned为cleaned_data
        return self.cleaned_data['slug'].lower()

额外优化(可选)

如果你的slug字段允许为空,建议先判断值是否存在,避免出现KeyError:

def clean_slug(self):
    slug = self.cleaned_data.get('slug')
    if slug:
        return slug.lower()
    # 字段为空时返回原值(或根据需求自定义处理逻辑)
    return slug

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:27:04