【发布时间】:2015-12-04 00:46:25
【问题描述】:
我正在尝试使用 django 表单初始化功能,出于某种原因,网络在高级表单功能上似乎非常简洁。我只是想把“repo-with-accidental-space”之类的错字改成“repo-with-accidental-space”。现在我有:
class BitbucketCreateRepoForm(forms.Form):
def __init__(self, repo_name=None, *args, **kwargs):
if repo_name:
self.repo_name = repo_name.strip()
super(BitbucketCreateRepoForm, self).__init__()
username = forms.ChoiceField(required=True, initial='codyc54321', choices=BITBUCKET_USERNAME_CHOICES)
repo_name = forms.CharField(required=True, label='Repo name')
description = forms.CharField(widget=forms.Textarea, required=False)
表单将在页面上加载,但是当我提交时:
AttributeError at /bitbucket/create-repo
'QueryDict' object has no attribute 'strip'
进入 ipdb 会很麻烦,必须有一个标准的方法来做到这一点,但我不再在我看到它的地方工作了。
这是视图:
def create_repo(request):
form = BitbucketCreateRepoForm(request.POST or None)
if form.is_valid():
repo_name = request.POST['repo_name']
username = request.POST['username']
description = request.POST['description'] or None
create_repo_func(username=username, repo_name=repo_name, description=description)
return render(request, 'bitbucket/create_repo.html', locals())
仅当表单通过 POST 并更新该字段,在 GET 请求时将其留空时,我如何处理此字段?谢谢
【问题讨论】:
-
什么不起作用?你有错误吗?
.strip()将删除字符串开头和结尾的空格:docs.python.org/2/library/string.html#string.strip -
是的,看来我没有放它们,漫长的一天
-
我就在你身边 :)
-
等一下...我看到了一个问题。你正在重新定义
repo_name。
标签: python django django-forms