2017-05-08 2 views
0

Wenn ich versuche, einen Benutzer in django mit Admin oder durch meine Registerfunktion in Ansichten zu erstellen, es gibt mir diese Fehlermeldung:Django - Nullwert in der Spalte „gewinnt“ gegen nicht-NULL-Constraint

durch das Register Funktion:

IntegrityError at /register_user/ 
null value in column "wins" violates not-null constraint 
DETAIL: Failing row contains (3, pbkdf2_sha256$36000$3SoR8l6dEXRD$CkFB+RRKeJPUPeux4EByqkYFkGLgkhI..., null, f, Ion, , , [email protected], f, t, 2017-05-08 10:47:39.860612+00, f, null). 

von Add Benutzer im Admin-

IntegrityError at /admin/football_app/customuser/add/ 
null value in column "wins" violates not-null constraint 
DETAIL: Failing row contains (7, pbkdf2_sha256$36000$o6UGPqAw72hi$qfbgoRAoJn4WmlK010VbfCzeu3+Fo0w..., null, f, Ion, , , , f, t, 2017-05-08 11:02:54.725688+00, f, null). 

models.py

class CustomUser(AbstractUser): 
    selected = models.BooleanField(default=False) 
    wins = models.IntegerField() 
    REQUIRED_FIELDS = ['email', 'selected', 'wins'] 

    def __str__(self): 
     return self.username 


class Score(models.Model): 
    VALUE = (
     (1, "Score 1"), 
     (2, "Score 2"), 
     (3, "Score 3"), 
     (4, "Score 4"), 
     (5, "Score 5"), 
     (6, "Score 6"), 
     (7, "Score 7"), 
     (8, "Score 8"), 
     (9, "Score 9"), 
     (10, "Score 10"), 
    ) 
    granted_by = models.ForeignKey(settings.AUTH_USER_MODEL, default=0) 
    granted_to = models.ForeignKey(settings.AUTH_USER_MODEL, default=0, related_name='granted_to') 
    grade = models.PositiveSmallIntegerField(default=0, choices=VALUE) 

    def __str__(self): 
     return str(self.granted_to) 

views.py

def register_user(request): 
    data = dict() 
    if request.method == 'POST': 
     form = UserForm(request.POST) 
     if form.is_valid(): 
      user = form.save(commit=False) 
      user.set_password(user.password) 
      user.save() 
      return redirect('/login/') 
    else: 
     data['form'] = UserForm() 
    return render(request, 'register_user.html', data) 

ich das gewinnt Feld mit +1 auf Benutzer hinzufügen und ich tue es mit diesem in anderer Funktion in Ansichten:

Antwort

1

Sie setzen sollen ein Standardwert für das Feld wins, sodass es für einen neuen Benutzer automatisch auf 0 festgelegt wird.

wins = models.IntegerField(default=0) 
Verwandte Themen