Javascript Django request.method==';邮政';返回错误
目前正在开发我的第一个django web应用程序,所以仍然非常生锈。 尝试创建允许讲师创建新类的页面,然后将该类添加到讲师类列表中 据我所知,根据教程,my views.py中的request.method应该返回一个POST,但当前正在返回GET 因此,创建的新类永远不会保存到数据库中 这是我的观点Javascript Django request.method==';邮政';返回错误,javascript,django,web-applications,django-forms,django-views,Javascript,Django,Web Applications,Django Forms,Django Views,目前正在开发我的第一个django web应用程序,所以仍然非常生锈。 尝试创建允许讲师创建新类的页面,然后将该类添加到讲师类列表中 据我所知,根据教程,my views.py中的request.method应该返回一个POST,但当前正在返回GET 因此,创建的新类永远不会保存到数据库中 这是我的观点 def create_class(request): if request.user.is_lecturer: print(" ") print("user is lectur
def create_class(request):
if request.user.is_lecturer:
print(" ")
print("user is lecturer")
form = classForm()
print(request.method)
if request.method == 'POST':
print("")
print("request method equals post")
form = classForm(request.POST)
if form.is_valid():
lecturer = LecturerProfile.objects.get(lecturer=request.user)
subject = Class.objects.get_or_create(class_name=form.cleaned_data["class_name"],
class_description=form.cleaned_data["class_description"],
lecturer=lecturer)
LecturerProfile.Classes.add(subject)
form.save(commit=True)
return index(request)
else:
print("")
print(form.errors)
else:
print("")
print("request method fail")
else:
return HttpResponse("You are not allowed here")
return render(request, 'student_feedback_app/create_class.html', {'form':form})
forms.py
class classForm(forms.ModelForm):
subject = forms.CharField(max_length=40, help_text="Class Name", required=False)
class_description = forms.CharField(max_length=200, required=False, help_text="Class Description")
slug = forms.CharField(widget=forms.HiddenInput(), required=False)
class Meta:
model = Class
fields = ('subject', 'class_description',)
我的create_class.html
<!DOCTYPE html>
<html>
<head>
Create a new class
<h1> Create a new class</h1>
</head>
<body>
<div>
<form id="" method="post" action="/lecturer/classes/">
{% csrf_token %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
<br>
{{ field.errors }}
{{ field.help_text }}
{{ field }}
{% endfor %}
<br>
<input type="submit" name="submit" value="Create Class" /> </form>
</div>
</body>
</html>
创建一个新类
创建一个新类
{%csrf_令牌%}
{%用于隐藏在表单中。隐藏的_字段%}
{{隐藏}}
{%endfor%}
{%form.visible_fields%}
{{field.errors}}
{{field.help_text}
{{field}}
{%endfor%}
我在终点站发现的错误是
用户正在获取
请求方法失败
[11/Nov/2018 16:27:24]“获取/讲师/创建课程/HTTP/1.1”200 923
找不到:/讲师/create class/js/plugins/jqBootstrapValidation.js
[11/Nov/2018 16:27:24]“GET/讲师/create class/js/plugins/jqBootstrapValidation.js HTTP/1.1”404 4369
从错误来看,这似乎与错误来自的引导程序有关,尽管我没有将其用于任何用途。
我甚至取出了base_template.html并编写了create_class.html,以防它使用javascript和bootstrap,但得到了相同的输出。
非常感谢您的帮助您确定您的表格正确吗?客户端?如果你真的发布了数据,请与网络调试器联系。很抱歉,我需要更多关于如何检查的说明。你的意思是使用管理界面吗?或者使用像PdbNo这样的实际调试工具,在您提交表单之前不会发布。第一个显示表单的请求是GET。@DanielRoseman啊,是的,我现在意识到,这仍然没有帮助,因为一旦提交表单,我就被卡在同一个位置,无法保存数据。同样,一旦我点击submit,肯定不会发生任何事情,因为我已经退出了if,它不是必须与POST相等吗?好吧,这里有几个错误,但最明显的是,
if-request.POST.get(“create_-class”)
永远不会是真的,因为您的表单中没有任何称为“create_-class”的内容。这种情况有什么意义?我不明白你说的“我已经退出if”是什么意思。