【发布时间】:2021-10-24 23:07:07
【问题描述】:
我实际上是在尝试将值列表 ['good','nice','happy'] 发布到后端。
我的 django 应用中有以下文件。
models.py
class TagModel(models.Model):
name = models.CharField(max_length=255)
class BlogModel(models.Model):
title = models.CharField(max_length=255)
tags = models.ManyToManyField(TagModel)
forms.py
class BlogForm(forms.ModelForm):
title = forms.CharField(widget=forms.TextInput(attrs={
'placeholder':_('Enter Blog Title'),
'class' : 'form-control border-success'
}))
blog_tags = forms.ChoiceField(widget=forms.TextInput(attrs={
"name":"blog_tags"
}))
def clean_title(self):
title = self.cleaned_data.get('title')
print(title)
return title
def clean_blog_tags(self):
//this line does not get whole list of data
tags = self.cleaned_data.get('blog_tags')
print(tags) // problem is here
return tags
class Meta:
model = PostModel
fields = ['title','blog_tags']
views.py
class create_blog(CreateView):
template_name = 'blogbackend/create_blog.html'
form_class=BlogForm
def get_form_kwargs(self):
kwargs = super(create_blog,self).get_form_kwargs()
print(kwargs)
return kwargs
模板上发生的事情是:-
-
我在视图上渲染标题字段
-
我在输入框上添加了一个 JS 代码,它的价值是创建一个名为 blog_tags 的隐藏输入
与forms.py文件中的文件名相同
用户提交表单后
-
我在 views.py 文件中成功接收到输入值 title 和 blog_tags,并使用辅助函数 get_form_kwargs() 成功显示在控制台上
-
数据是这样的
{'initial': {}, 'prefix': None, 'data': <QueryDict: {'csrfmiddlewaretoken': ['4Cm5mvGFv4skPJNTzRI8fKZKq9i7edQbwNmOgCPbDTtu8JQHqE5cd9rQLA8Kzhpu'],'title': ['first'],'blog_tags' : ['good','nice','happy']}>, 'instance':None}
问题
- 当我尝试访问函数 clean_blog_tags() 中的值时,它只会在控制台上打印列表值“happy”
谁能帮我获取干净函数中的完整值列表
谢谢 GS
【问题讨论】:
标签: python django django-forms