2017-07-13 6 views
0

Bitte verzeihen Sie mir im Voraus - ich weiß, es gibt einige Fragen dazu - aber ich habe wirklich keine Lösung gefunden.Django - nicht speichern in PostGresql Datenbank

Ich arbeite an Django und möchte eine Postgresql-Tabelle füllen, die dank eines von mir erstellten Modells erstellt wurde.
Ich habe auch mein Formular, meine HTML-Seite (Vorlage) und meine Ansicht erstellt. Ich habe keine Fehlermeldung, aber nichts ist in der Datenbank erstellt.

Hier ist meine model.py

class ModForm1(models.Model) : 
    utilisateur = models.CharField(max_length=100) 
    description = models.CharField(max_length=500) 
    date = models.DateTimeField(auto_now_add=True, auto_now=False, 
           verbose_name="Date de parution") 

    def __unicode__(self): 
     return "{0} {1} {2} {3} ".format(self, self.utilisateur, self.description, self.date) 

Hier mein form.py

class ModForm1Form(ModelForm): 
    class Meta: 
    model = ModForm1 
    fields = '__all__' 

meine Vorlage Hier ist:

<div class="container"> 
    <div style="width:30%"> 
     <form role="form" action="." method="post"> 
      <div class="col-xs-12"> 
       <legend><i class="icon-group"></i>&nbsp;Authentification</legend> 

       {% csrf_token %} 
       <div class="form-group"> 
        <label for="example-text-input">Utilisateur</label> {{ form.utilisateur }} 
       </div> 
       <div class="form-group"> 
        <label for="example-text-input">Description</label> {{ form.description }} 
       </div> 

       <input class="btn btn-primary" type="submit" value="submit" /> 
     </form> 

     </div> 
</div> 

Und hier ist mein views.py

def addentry(request): 
    form = ModForm1Form(request.POST) 
    # if this is a POST request we need to process the form data 
    if request.method == 'POST': 
     if form.is_valid(): 
      # process the data in form.cleaned_data as required 
      # ... 
      # redirect to a new URL: 
      form.save() 
      return HttpResponseRedirect('.') 
      #messages.error(request, "Error") 

    # if a GET (or any other method) we'll create a blank form 
     else: 
      messages.error(request, "Error") 

    return render(request, 'addentry.html', {'form': form}) 

Ich lese fast alle Fragen in StackOverflow, aber ich bin wirklich fest. Ich finde nicht wirklich, warum nichts in meine Datenbank geschrieben wurde.
Könnten Sie bitte ein Auge und mir helfen?

Danke!
Julien

EDIT - Die Datenbank config in setting.py

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'django', 
     # The following settings are not used with sqlite3: 
     'USER': 'julien', 
     'PASSWORD': '***', 
     'HOST': 'localhost',      # Empty for localhost through domain sockets or   '127.0.0.1' for localhost through TCP. 
     'PORT': '5432',   
    } 
} 
+0

Können Sie Ihre Datenbankkonfiguration (settings.py) hinzufügen? Und Fehlermeldungen? –

+0

Keine Fehlermeldungen leider .. Ich habe die Datenbankkonfiguration in meinem ersten Beitrag – Julien

+1

[Fügen Sie die Formularfehler] (https://docs.djangoproject.com/en/1.11/topics/forms/#rendering-fields-manual) in die Vorlage, damit Sie sehen können, was das Problem ist. Sie können auch debuggen, indem Sie 'form.errors' in der Ansicht überprüfen. – Alasdair

Antwort

0

Sie wollen MySQL-Datenbank verwenden, aber in settings.py setzen Sie 'ENGINE': 'django.db.backends.postgresql_psycopg2' diese Einstellung ist für PostgreSQL nicht für MySQL. Sie müssen diese Zeichenfolge wie folgt ändern: 'ENGINE': 'django.db.backends.mysql'.

Hoffe, das ist Hilfe.

+0

Mein Fehler .. Es tut mir leid, dass ich an Django mit Postgresql arbeite (Bearbeitung) und nicht Mysql .. Es ist, weil ich gleichzeitig in einer Mysql-Datenbank für ein anderes Projekt arbeite. – Julien

Verwandte Themen