Django: Speichern in DB-Formular Beispiel
Es scheint, ich hatte Schwierigkeiten das finden einer guten Quelle/tutorial über das speichern von Daten in der DB aus einer form. Und wie Sie fortschreitet, bin ich langsam verloren zu gehen. Ich bin neu in Django, und bitte führe mich. Ich bin immer Fehler
lokale variable 'speichern' referenced before assignment
Hier sind meine einschlägigen codes,
models.py
from django.db import models
# Create your models here.
class Store(models.Model):
store_name = models.CharField(max_length=100)
def __unicode__(self):
return self.store_name
class Feedback(models.Model):
store = models.ForeignKey(Store)
username = models.CharField(max_length=100)
comment = models.CharField(max_length=1000)
date = models.DateTimeField("comment_date")
def __unicode__(self):
return self.username
views.py
def add(request, store_name):
if request.method == "POST":
store = Store.objects.get(store_name=store_name)
saved_username = request.POST.get("username", "")
saved_feedback = request.POST.get("feedback", "")
feedback = Feedback(username=saved_username, comment=saved_feedback, date=timezone.now())
feedback.save()
return HttpResponseRedirect(reverse("view", args=(store.id,)))
addfeedback.html(die, die Anrufe hinzufügen views.py)
<html>
<head><title>Add Feedback</title>
<link rel="stylesheet" type="text/css" href={{ STATIC_URL }}styles.css>
</head>
<body>
<div class="form">
<form action="{% url add store.store_name %}" method="post">
{% csrf_token %}
<input type="text" name="username" size="20"><br />
<textarea name="feedback" cols="50" rows="10"></textarea><br />
<input type="submit" value="Add" />
</form>
</body>
</html>
2 Jahre später und ich habe dieses Problem auch
2 Jahre später und ich habe vergessen was zur Hölle habe ich gerade gefragt.
2 Jahre später und ich habe vergessen was zur Hölle habe ich gerade gefragt.
InformationsquelleAutor Law Gimenez | 2012-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
django.forms
für den job. Keine Daten direkt vonPOST
db. Finden Sie unter den verwandten Dokumentation.Der Fehler ist offensichtlich – Sie verweisen
store
selbst wenn die Anfrage nichtPOST
.InformationsquelleAutor Krzysztof Szularz
Hier ist eine ziemlich gute tutorial auf ModelForms. Obwohl es für Django 1.3, also es ist langsam obsolet.
Sollten Sie erhalten nur die
local variable 'store' referenced before assignment
Fehler beim Zugriff auf die Formular-url direkt. Wenn ein Formular gepostet wurde, an die url speichern zugewiesen werden soll.Sie versuchen, erstellen Sie ein Formular basierend auf einem Modell, also werde ich erklären, wie könnte man eine ModelForm.
Ihre feedback-Modell hat ein DateTimeField und Sie speichern den Zeitstempel, wenn das feedback gesendet wurde. Können Sie automatisieren, indem
auto_now_add
trueDann erstellen Sie eine forms.py in Ihrem app-Ordner mit den folgenden
Ihre views.py sollte enthalten eine Funktion, die die Anzeige und Bearbeitung der eingereichten form
Sorry, ich hab es rückwärts, es ist
auto_now_add
Ich habe gerade übertragen store = Store.Objekte.bekommen(store_name=store_name) diese Zeile an die Spitze. Und alles ging gut. Danke.
InformationsquelleAutor Enrico
Ich hatte das gleiche Problem beim laden speichern Daten in meiner Datenbank. Dies ist, wie ich es gelöst.
InformationsquelleAutor Richard Ackon