django内联管理模型和通用关系

时间:2011-09-14 10:48:48

标签: django

我有一个带有通用外键的内联管理模型,我想在模型clean()方法中验证它的一组属性。如果我添加一个新模型,则clean()方法中既不设置content_type也不设置object_id,但如果我尝试更改现有模型,我可以访问content_type属性。

首次添加新模型时,是否有任何解决方法可以获取content_type?

任何提示或网址都表示赞赏 谢谢&&祝你今天愉快! :)

巴斯蒂

1 个答案:

答案 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