django - 以表单形式访问管理模型实例

标签 django django-admin django-forms

class ProductAdmin(admin.ModelAdmin):
    form = ProductAdminForm()

class ProductAdminForm(forms.ModelForm): 
    def __init__(self, request, *args, **kwargs):
         super(ProductAdminForm, self).__init__(*args, **kwargs)
         self.fields['field1'] = forms.CharField(required=False)
         self.fields['field2'] = forms.IntegerField()

如何将产品实例从 ProductAdmin 传递到 ProductAdminForm?我想根据产品实例提供不同的字段。

最佳答案

这个:

class ProductAdminForm(forms.ModelForm):
     class Meta:
         model = Product

     def __init__(self, *args, **kwargs):
         super(ProductAdminForm, self).__init__(*args, **kwargs)

             product_instance = self.instance
             if product_instance.id and product_instance.myField == "thatValue":
                 self.fields['field1'] = forms.CharField(required=False)
                 self.fields['field2'] = forms.IntegerField()

关于django - 以表单形式访问管理模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777371/

相关文章:

python - Openstack远程调试

Django modelform 根据其他字段选择删除 "required"属性

python - 缩略图现在显示在 django 管理 ListView 中

django - 多个模型保存在一个 POST 请求中。 (无效数据。需要字典,但得到了列表。)

django haystack SearchField 索引为 False

django - 使用 Django 用户管理员使电子邮件字段独一无二

django - 永远不会调用 Django 管理界面中字段的只读方法

python - 用户提交博客文章后重定向到主页?

django - 重新填充 Django ChoiceField 而不重新启动服务器

python - Django 模板中有两种不同的形式