如何从父表单中删除字段?

How to remove fields from parent form?

我有一个用于注册用户的表格。我有另一种用于登录用户的表单。这两个表单共享共同的属性,例如用户名和密码。

我试图创建一个继承自 RegisterForm 的登录表单,但我不知道如何删除不需要登录的字段,例如重复密码或同意条款和条件复选框。

我该怎么做?这些表单继承自 Form 而不是 ModelForm。

del form.some_field - 在实例化表单 class 之后或在 __init__ 中(在 super 调用之后,您将使用 self 而不是 form).

https://wtforms.readthedocs.io/en/3.0.x/specific_problems/#removing-fields-per-instance

如果 LoginForm 确实是 RegisterForm 的子集,您最好取消继承。

class LoginForm(Form):
    username = ...
    password = ...

class ReigsterForm(LoginForm):
    confirm_password = ...