django - Django中的内联表单集-删除某些字段

标签 django django-admin inline-formset

我需要创建一个内联表单集

a)从MyModel中排除某些字段,使其完全显示

b)显示一些字段MyModel,但阻止其进行编辑。

我尝试使用下面的代码,并使用values()来将查询集过滤为仅返回我想返回的那些值。但是,这失败了。

有人有什么主意吗?

class PointTransactionFormset(BaseInlineFormSet):
    def get_queryset(self):
        qs = super(PointTransactionFormset, self).get_queryset()
        qs = qs.filter(description="promotion feedback")
        qs = qs.values('description','points_type') # this does not work
        return qs

class PointTransactionInline(admin.TabularInline):
    model = PointTransaction
    #formset = points_formset()
    #formset = inlineformset_factory(UserProfile,PointTransaction)
    formset = PointTransactionFormset

最佳答案

在文档中似乎没有说的一件事是,您可以在模型表单集的参数中包含一个表单。因此,举例来说,假设您有一个人模型表单,可以通过执行此操作在模型表单集中使用它

PersonFormSet = inlineformset_factory(User, Person, form=PersonForm, extra=6)

这样,您就可以在模型表单级别上进行所有表单验证,排除等操作,并在工厂进行复制。

关于django - Django中的内联表单集-删除某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559361/

相关文章:

DJANGO:如何以形式而不是文字 "model object"呈现模型对象名称?

python - Django 内联表单集和选择字段生成过多的数据库查询

django - 如何从 Django View 返回 HTTP 状态代码 204?

python - django 管理站点 - 过滤用户可用的对象

具有同一模型的多个内联的 Django 管理

python - 在 Django 管理界面中设置与所选模型类的关系

图像字段未更新的 Django 内联表单集

python - django 管理错误 - 'django_content_type.name' 中的未知列 'field list'

Django Rest Framework 多个嵌套的可写序列化程序

python - Django 创建一对多关系