私のプログラムでajax呼び出しを使用しています。__init __()予期しないキーワード引数 'password'がありますdjango
`<form id = "post_submit" action="{% url "apply" %}" method="POST">
{% csrf_token %}
{% for field in form %}
<p>{{field.label}} : {{field}}</p>
{% endfor %}
<p><input type="submit" name="Submit"></p>
</form>
<p id="click_option">Click here.</p>
のAjax呼び出しを使用して作られています:
次は私のテンプレートで、class Student(models.Model):
name = models.CharField(max_length = 20)
password = models.CharField(max_length = 100)
email = models.CharField(max_length = 10)
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = '__all__
を今:私はモデルで、以下のいる
TypeError: __init__() got an unexpected keyword argument 'password'
:私のようなエラーを取得しています
$.ajax({
// using this for csrf handling
// alert(" i am in ajax");
// console.log(" iam ");
url : "/apply/",
type : "POST",
data :
{
csrfmiddlewaretoken:document.getElementsByName('csrfmiddlewaretoken')[0].value,
name : $('#id_name').val(),
email : $('#id_email').val(),
password : $('#id_password').val(),
},
success: function(json) {
alert("Congratulations! You scored: " + json['status']);
},
// error
})
});
バックエンドのビューは次のとおりです。 (リクエスト)を適用
はDEF:あなたは手動でPOSTデータの中から値を取得する必要はありません
if request.method == 'POST':
name = request.POST.get('name')
email = request.POST.get('email')
password = request.POST.get('password')
student = StudentForm(name = name, email = email, password = password)
student.save()
data = {"status" : "success"}
return JsonResponse(data)
else:
data = {"status" : "failure"}
return JsonResponse(data)
定義されていないStudentFormのコンストラクタを呼び出しています。正しい方法は、オブジェクトを作成し、値を割り当てることができます – Freddy
OK、私は問題がある。しかし、なぜ 'password'だけにタイプエラーがあるのですか?なぜすべての価値観ではないでしょうか? – learner
'TypeError'は一度に1つのフィールド名しか表示しません。 'student = StudentForm(name = name、email = email)'に変更した場合は、他のフィールドのいずれかと同じエラーが発生します。 – Alasdair