我有一个django表单,我需要为验证目的设置一个值,而不是作为标准Post请求的一部分传递。
在我的代码中,我目前有类似的东西:
if request.method == 'POST':
postform = CreatePostForm(request.POST, request.FILES, initial={'post_type':post.post_type})
if postform.is_valid():
.....
值post_type是一个值为'QUE'
的选择我遇到的问题是这似乎没有效果。有没有人对如何在验证发生之前将post_type值添加到CreatePostForm类中提出任何建议。
请注意我不希望在表单上公开这个值,因此包含它作为帖子的一部分不是一个选项。
答案 0 :(得分:7)
一种方法是将它作为表单类的属性,在实例化时将其作为参数传递:
class CreatePostForm(forms.Form/ModelForm):
def __init__(self, post_type, *args, **kwargs):
super(CreatePostForm, self).__init__(*args, **kwargs)
self.post_type = post_type
postform = CreatePostForm(post_type=post.post_type, request.POST, request.FILES)
希望能帮到你。