我有一个带有通用外键的内联管理模型,我想在模型clean()方法中验证它的一组属性。如果我添加一个新模型,则clean()方法中既不设置content_type也不设置object_id,但如果我尝试更改现有模型,我可以访问content_type属性。
首次添加新模型时,是否有任何解决方法可以获取content_type?
任何提示或网址都表示赞赏 谢谢&&祝你今天愉快! :)
巴斯蒂
答案 0 :(得分:0)
如果我理解你,可以使用以下内容:
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
def clean(self):
content_type = self.cleaned_data.get('content_type')
object_id = self.cleaned_data.get('object_id')
if content_type and object_id:
obj = content_type.get_object_for_this_type(pk=object_id)
# Check whatever on the object here, and if there's a problem:
# raise forms.ValidationError('Something is not right')
return self.cleaned_data