Ich weiß, dass es viele Lösungen für dieses Problem gibt, aber sie scheinen ein bisschen anders als meins. Hier ist meine models.py:Nullwert in Spalte "user_id" verletzt Nicht-Null-Bedingung Django
from __future__ import unicode_literals
from django.db import models
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.postgres.fields import HStoreField
# Create your models here.
class Events(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
name = models.CharField(max_length=32)
start = models.CharField(max_length=32)
end = models.CharField(max_length=32)
Sehr einfacher Tisch, und ich mag, dass die Primärschlüssel in Auth_user
der Fremdschlüssel in meinem Events
Tisch sein. Das würde natürlich bedeuten, dass ein User
eingeloggt und authentifiziert sein muss, damit dies funktioniert. In meinem views.py ich habe:
def createEvent(request):
if request.method == "POST":
user = request.user
print (user) # Check for Authentication
name = request.POST['name']
start = request.POST['start']
end = request.POST['end']
Events.objects.create(
name = name,
start = start,
end =end,
)
Die print-Anweisung die aktuellen Benutzer gedruckt wird abgemeldet in Ich kann bestätigen, dass dieser Teil zeigt nicht, dass ein Benutzer in und dass dieser Benutzer angemeldet ist, ist in der auth_user
Tabelle. mit einem einzigartigen id
. Wenn ich jedoch versuche, ein Formular zu senden, erhalte ich einen Nullwert für die user
Spalte. Irgendwelche Ideen?
'Events.objects.create (Name = Name, Start = Start, Ende = Ende)' Der Benutzer wird nirgendwo festgelegt ... In einer separaten Notiz sollten Sie ein [ModelForm] (https: // docs .djangoprojekt.de/de/1.10/topics/forms/modelforms /) für so etwas spart viel Arbeit. –
@jens, das sollte wahrscheinlich eine Antwort gewesen sein. Sagen Sie dem op, wie man eine ordnungsgemäße is_authenticated Prüfung durchführt. – e4c5
Warten Sie entschuldigen, sollte der Benutzer nicht schon gesetzt in der models.py wetten? 'user = models.ForeignKey (settings.AUTH_USER_MODEL)' – anderish