Ich versuche, Formulardaten über POST-Methode zu bekommen, aber bekam "Kontext muss ein Diktat sein, anstatt Tupel" error.Ich habe es viel Google, nach dem Django 1.11 ' s docs Wir brauchen nur ein normales Wörterbuch anstelle einer Context-Instanz. Ich bin hier fest, hilf mir bitte!Kontext muss ein Diktat sein, anstatt Tupel Django Formen
Hier ist der Fehler:
TypeError at /docker/auth/
context must be a dict rather than tuple.
Request Method: POST
Request URL: http://127.0.0.1:8000/docker/auth/
Django Version: 1.11.3
Exception Type: TypeError
Exception Value:
context must be a dict rather than tuple.
Exception Location: /Users/abdul/IstioVirEnv/lib/python3.6/site-packages/django/template/context.py in make_context, line 287
Python Executable: /Users/abdul/IstioVirEnv/bin/python
Python Version: 3.6.1
Python Path:
['/Users/abdul/Documents/IGui',
'/Users/abdul/IstioVirEnv/lib/python36.zip',
'/Users/abdul/IstioVirEnv/lib/python3.6',
'/Users/abdul/IstioVirEnv/lib/python3.6/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
'/Users/abdul/IstioVirEnv/lib/python3.6/site-packages']
Server time: Mon, 10 Jul 2017 10:12:30 +0000
Hier Mein views.py ist:
import json
from django.shortcuts import render
from django.views.generic import CreateView
from . import forms
from django.http import HttpResponse
class DockerAuth(CreateView):
form_class = forms.DockerAuthForm
def get(self, request, *args, **kwargs):
return render(request, 'dockerDep/docker_login.html', {})
def post(self, request, *args, **kwargs):
lform = forms.DockerAuthForm(request.POST)
if lform.is_valid():
data = lform.cleaned_data
name = data['docker_name']
password = data['docker_pass']
args = {
"mname": name,
"mpass": password
}
return render(request, 'dockerDep/response.html', args)
Hier ist mein forms.py:
from django.forms import forms
from .import models
class DockerAuthForm(forms.Form):
class Meta:
fields = ('docker_name', 'docker_pass')
model = models.DockerAuth
Hier ist meine models.py:
from django.db import models
class DockerAuth(models.Model):
docker_name = models.CharField(max_length=255)
docker_pass = models.CharField(max_length=255)
Hier ist mein HTML-Template:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOCKER</title>
</head>
<body>
<form method="post" action="">
{% csrf_token %}
<input type="text" name="docker_name" title="Name">
<input type="password" name="docker_pass" title="Password">
<input type="submit" value="Submit"/>
</form>
</body>
</html>
zu vermeiden Wenn Sie eine Fehlermeldung erhalten, ** post it ** zusammen mit dem vollständigen Zurückverfolgungs. –