django - 如何从表单中排除字段?
问题描述
我有一个带有几个字段的模型表单。在一个模板中,我想在一个模板中使用所有这些字段,并在另一个模板中排除某个字段。是否可以不编写新表单而仅在中排除该字段views.py
?
解决方案
不完全是,但你不必重复自己。
您可以定义一个包含您经常使用的所有字段的基本表单,并从中继承以添加字段
class MyPersonBaseForm( forms.Form):
surname = forms.CharField( max_length=100)
forenames = ...
age = ...
company = ...
...
class MyFooPersonForm( MyPersonBaseForm):
foo =
并且MyFooPersonForm
拥有所有MyPersonForm
加号字段foo
您还可以使用它的__init__
方法从表单子类中删除字段,根据这篇文章(garnertb 的相关答案粘贴在下面)
class LoginFormWithoutNickname(LoginForm):
def __init__(self, *args, **kwargs):
super(LoginFormWithoutNickname, self).__init__(*args, **kwargs)
self.fields.pop('nickname')
推荐阅读
- wordpress - 如何在其他页面上显示带有自定义字段的模板页面
- c# - Web API 中的 C# 插件架构
- android - 从 Playstore 获取动态链接不起作用
- c# - Store ID is in wrong format
- php - Magento 2 Category SEO friendly URLS
- ios - UITableViewCell contentView insets and Auto Layout
- marklogic - How to remove a column from a csv file while loading a file?
- c - File pointer becomes NULL on second iteration of while loop
- python - Python 3:如果 URL 没有 `//`,则 `urllib.parse` 中的 `netloc` 值为空
- angular - 如何通过 Azure Active Directory 将 Angular Web 应用程序与 Azure 函数应用程序链接?