gpt4 book ai didi

django - 字段和base_fields-Django

转载 作者:行者123 更新时间:2023-12-04 01:34:23 25 4
gpt4 key购买 nike

创建平面时,我希望用户从预定义列表中选择模板。为了使Flatpage模型保持不变,相对于ChoiceField,我更喜欢ModelChoiceField(后者提供了模板的PK,但我需要template_name字段的名称):

class NewFlatpageForm(FlatpageForm):

template_name = forms.ChoiceField(choices = [])
def __init__(self, *args, **kwargs):
self.base_fields['template_name'].choices = ProjectTemplate.objects.values_list('path', 'name')
super(NewFlatpageForm, self).__init__(*args, **kwargs)


我覆盖 __init__或Django在服务器启动时填充选择,然后不更新列表。

我没有任何管理员经验,但是当不使用admin时,我使用 fields属性做了类似的事情。但是,在这种情况下,我出现了一个异常,告诉 fields不是该表单的属性。 __dict__向我显示了一个 base_fields属性,使用它可以正常工作。那么,为什么在这里使用base_fields,为什么 fields不存在,最后我还是在做些骇人听闻的事情?

最佳答案

fields直到您调用super之后才存在。因此,只需交换行的顺序,以使super首先出现。

关于django - 字段和base_fields-Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140862/

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