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
相关产品推荐
相关产品推荐

