Ich möchte ein Formular bearbeiten, das ich mit HTML in Django erstellt habe, aber ich kann nicht den richtigen Weg finden, um den Wert von den Eingaben zu erhalten.Django - Handling-Formular ohne das Formular-Modell
Das ist mein HTML-Formular:
<form action="" class="form-inline" method="post">
{% csrf_token %}
<!-- malfunction description -->
<label class="requiredField" for="malfunctionDescription">תאור
התקלה</label>
<br/>
<textarea class="form-control" style="width: 100%; margin-bottom: 3px"
id="malfunctionDescription"
name="malfunctionDescription"
rows="5">
</textarea>
</form>
Und das ist mein view.py der leider leer ist:
def index(request):
error = ''
if request.method == 'POST':
status = request.POST['status']
rank = request.POST['rank']
opener = request.POST['MalfunctionOpener']
handler = request.POST['malfunctionHandler']
system = request.POST['system']
unit = request.POST['unit']
opening_date = request.POST['openingdate']
closing_date = request.POST['closingdate']
description = request.POST['malfunctionDescription']
solution = request.POST['malfunctionSolution']
summary = request.POST['malfunctionSummary']
find_description = Malfunction.objects.filter(description=description)
if find_description:
error = 'This malfunction is already stored in the data base'
else:
Malfunction.objects.create(status=status, rank=rank, opener=opener, handler=handler, system=system,
unit=unit, openingDate=opening_date, closingDate=closing_date, solution=solution,
summary=summary, description=description)
else:
error = 'Something went wrong'
return render(request, 'resources-management/home.html')
Das Hauptziel für mich ist diese Information aus der Form zu erhalten und Erstellen Sie ein neues Objekt, das es in die Datenbank schieben wird. Wenn ich das richtig verstanden, dieses Objekt, das ich so etwas wie tun müssen, erstellen:
Object_name.object.create(information=information)
Aber ich weiß nicht, wie die Informationen zu bekommen, ich so etwas wie request.form brauchen [ ‚name‘] in Kolben
Danke!
---- EDIT 1 - url.py ----
Dies ist der Haupt url.py
urlpatterns = [
url(r'^', include('elbit_ils.urls')),
url(r'^admin/', admin.site.urls),
url(r'^resources-management/', include('resources_management.urls')),
url(r'^registration-login/', include('registration_login.urls')),
url(r'^contact/', include('contact.urls')),
]
Dies ist die Anwendung url.py
urlpatterns = [ url(r'^$', IndexView.as_view(), name="my_list"), url(r'^(?P<pk>\d+)$', DetailView.as_view(model=Malfunction, template_name="resources-management/malfunction.html")), ]
- bearbeiten 2: indexview -
Klasse IndexView (Create):
context_object_name = 'my_list'
template_name = 'resources-management/home.html'
queryset = Malfunction.objects.all()
fields = '__all__'
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
context['contacts'] = Contact.objects.all().order_by("firstname")
context['malfunctions'] = Malfunction.objects.all().order_by("-openingDate")
context['systems'] = System.objects.all().order_by("systemname")
context['units'] = Unit.objects.all().order_by("unitname")
# And so on for more models
return context
Aus irgendeinem Grund bekomme ich diese Methode nicht erlaubt (POST):/my_url/irgendwelche Ideen warum? –
Bitte posten Sie Ihre URL.py, vollständige Ansicht, ob DEBUG True oder False ist? – itzMEonTV
Ich habe die url.py, das Debug-Set auf True –