gpt4 book ai didi

Django Generic CreateView - 如何填充字段但不显示它们

转载 作者:行者123 更新时间:2023-12-01 03:53:17 25 4
gpt4 key购买 nike

我想创建使用通用 CreateView 预先或后填充的隐藏字段,但据我所知,我只有两个不需要指定表单的选择。

这将显示预先填充的字段:

class FootCreate(CreateView):
model = Footprint
fields = ["source","size","notes", "parent", "created_by"]
success_url = reverse_lazy('home')

def get_initial(self):
parent = Object.objects.get(id=self.kwargs['obj_id'])
return { 'parent': parent, 'created_by': self.request.user }

或者从字段列表中删除我不想显示的字段:
    fields = ["source","size","notes"]

但现在这些字段未填充在表单上,​​因此无法验证。

我知道我可以通过子类化表单或使用 javascript 来隐藏表单上的字段来处理这个问题,但我想知道是否有一个选项可以等效于:
    fields = ["source","size","notes", "parent", "created_by"]
hidden_fields = ["parent", "created_by"]

在 View 中?

答案
否 - 但是自定义模型表单只需要几行。给出 View 中字段的完整列表。:
class FootprintForm(ModelForm):

class Meta:
model = Footprint
widgets = {'created_by': forms.HiddenInput, "object": forms.HiddenInput}

最佳答案

正如我现在没有办法在 CBV 中做你想做的,我认为没有理由在 View 中做。表单逻辑应该封装在 Form 中,您可以使用 ModelForm 和几行代码轻松完成

关于Django Generic CreateView - 如何填充字段但不显示它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com