【问题标题】:How to access what was filled in an HTML element from a POST request? django如何从 POST 请求访问 HTML 元素中填充的内容? django
【发布时间】:2016-10-17 23:22:07
【问题描述】:

在我的 Django 应用程序中,我需要访问用户在 City 文本字段中填写的内容。

这是模板中的城市文本字段:

<label class="reglabel">City: </label><br>
{{ profile_form.city|add_class:"input-md textfields" | attr:"placeholder: Search Cities..."|attr:"id:searchBoxGlow" | attr:"name: cityname" }}
{{ profile_form.city.errors }}<br>

在我的 View.py 文件中,我尝试使用我添加到模板中的 name 属性来访问该值:

print request.POST.get("cityname", "")

我听从了这个问题的建议:

Django - taking values from POST request

这是表单,在这个阶段我只想提取用户填写的文本,以便将其转换为城市实例并保存表单。

class UserProfileForm(forms.ModelForm):
    city = forms.CharField(required=True)
    class Meta:
        model = UserProfile
        fields = ('profilepic', 'city', 'hobbies', 'languages')

但是,它会打印空白,而不是用户在“城市”文本字段中填写的内容。

【问题讨论】:

  • 您确定要发出 POST 请求吗?尝试打印 request.POST 以查看其中包含的内容。
  • 谢谢,我设法解决它并发布了答案。

标签: django post django-templates django-views


【解决方案1】:

如果我打印 request.POST 我会收到以下信息:

<QueryDict: {u'city': [u'London, United Kingdom'], u'first_name': [u'seifautocomplete'], u'last_name': [u'Elmughrabi'], u'languages': [u'263'], u'hobbies': [u'2110'], u'csrfmiddlewaretoken': [u'aPBSrZgfhHx03xPKF5xc5NtLrPL1r1Bc'], u'profilepic': [u'']}>

为了拉城市,我需要使用键:'city',而不是像我在问题正文中那样使用 HTML 元素名称属性。

这是我需要做的:

print request.POST.get("city", "")

问题已解决。

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 2016-09-15
    相关资源
    最近更新 更多