python - 为什么我的表格总是未绑定(bind)?

标签 python django django-forms

我是 Django 的新手,我正在尝试在我的网站中使用 django-friends。

这是来自 django-friends 的表格:

>>> from django import forms
>>> class UserForm(forms.Form):
...     
...     def __init__(self, user=None, *args, **kwargs):
...         self.user = user
...         super(UserForm, self).__init__(*args, **kwargs)
... 
>>> f = UserForm({})
>>> f.is_bound
False

document说“传递一个空字典会创建一个包含空数据的绑定(bind)表单”,但为什么结果是未绑定(bind)的(f.is_bound 为 False)?

非常感谢!

最佳答案

您的 __init__ 语句吞没了第一个参数。

从您的 init 语句中删除 user=None,也许可以从 kwargs 中提取它。

class UserForm(forms.Form):
    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user', None)
        super(UserForm, self).__init__(*args, **kwargs) 
        # now the form is actually receiving your first argument: args[0] == {}

关于python - 为什么我的表格总是未绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877344/

相关文章:

Django formset - 如何更新对象?

javascript - Django、javascript 和复杂表单

python - 如何在Ubuntu上使用多个版本的NLTK?

python - 正确设置 django redis celery 和 celery beats

python - 如何在 ModelResource django-import-export 中获取请求

django - 将来自用户提交的评论的YouTube视频嵌入到Django网页中

python - 为什么在 Python 中从多个进程写入文件时我的文件没有损坏?

python - 在 pyspark RDD 上显示分区

python - Django 测试 : TransactionManagementError: You can't execute queries until the end of the 'atomic' block

file-upload - 使用 Django 上传文件 : Invalid form