The*_*ist 0 python django django-forms
我正在尝试在 python 视图中访问 request.method,但出现错误
'str' object has no attribute 'method'
Run Code Online (Sandbox Code Playgroud)
真正奇怪的是,我看不出设置此页面的方式与设置另一个类似页面的方式没有任何区别;然而,那个工作得很好,而这个却不行。
我使用的代码如下:
主要/视图.py:
from .alphabetize import alphabetize
from .forms import WordListForm
def alphabetize(request):
if request.method == "POST":
form = WordListForm(request.POST)
if form.is_valid():
word_list = alphabetize(form.cleaned_data['word_list'])
return render(request, 'main/alphabetize.html', {'form': form, 'word_list': word_list})
else:
form = WordListForm()
return render(request, 'main/alphabetize.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
/main/forms.py
class WordListForm(forms.Form):
word_list = forms.CharField(label="Word List")
Run Code Online (Sandbox Code Playgroud)
主/urls.py
from django.conf.urls import url
from main import views
urlpatterns = [
url(r'alphabetize', views.alphabetize, name='alphabetize'),
]
Run Code Online (Sandbox Code Playgroud)
主要/按字母顺序排列.py
def alphabetize(s):
word_list = []
for word in s.split(','):
word_list.append(word.strip())
word_list.sort()
return ', '.join(word_list)
Run Code Online (Sandbox Code Playgroud)
模板/main/alphabetize.html
{% extends "base.html" %}
{% block content %}
<form action="/alphabetize" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>
<p>Your list alphabetized: {{ alpha_list }}</p>
{% endblock content %}
Run Code Online (Sandbox Code Playgroud)
/templates/base.html
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Awesome Django Page</title>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body>
<div class="main">
{% block content %}{% endblock content %}
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
似乎由于某种原因 request 是一个字符串而不是 HttpRequest 对象,但我不明白为什么会这样。
| 归档时间: |
|
| 查看次数: |
2977 次 |
| 最近记录: |