не удается сохранить объект модели django в базе данных

#django #django-models

#django #django-модели

Вопрос:

Я использую request.POST содержимое для сохранения объекта модели после создания и аутентификации пользователя.

проблема в том, что мой пользователь создан и авторизован, но модель, которая расширяет эту самую информацию о пользователях "school_info model" в базе данных, не сохраняется, пока ошибка не указана. вот мой код:

 @api_view(['POST'])
@permission_classes((permissions.AllowAny, ))
def login_api(request):
    post = request.POST
    user = authenticate(
        request,
        username=request.POST['username'],
        password=request.POST['password']
        )
    if user:
        school = school_info.objects.create(
            school_user=request.user,
            school_name=post['school_name'],
            school_manager_name=post['school_manager_name'],
            school_manager_phone=post['school_manager_phone'],
            class_count=post['class_count'],
            students_per_class=post['students_per_class'],
            daytime_importance=post['daytime_importance'],
        )
        school = school.save()
        login(request, user)
        return Response({}, status=200)
    else:
        return Response({}, status=401)
  

модель school_info

 class school_info(models.Model):
    school_user = models.OneToOneField(User, on_delete=models.CASCADE)
    school_name = models.CharField(max_length=20)
    school_manager_name = models.CharField(max_length=20)
    school_manager_phone = models.CharField(max_length=11)
    class_count = models.IntegerField()
    students_per_class = models.IntegerField()
    daytime_importance = models.BooleanField(default=False)

  

Я тоже пробовал ModelForms и obj.create().save() , но оба они не работают.

приветствуется любой ответ.

Комментарии:

1. Вы имеете в виду, что объект school вообще не сохраняется или у него нет сохраненных атрибутов. При том, как вы это делаете, он просто создает множество локальных переменных, вы не привязываете его к созданной модели.

2. «модель, которая расширяет эту самую информацию о пользователях в базе данных, не сохраняется» — на какую модель вы ссылаетесь — school_info или на какую-то другую? Если последнее, то какая это модель? Также следующая строка не имеет смысла: school = school.save() save() метод ничего не возвращает.

3. запрос имеет правильные заголовки, и импорт правильный, и я зарегистрировал модель в admin. объекты могут быть созданы оболочкой или интерфейсом администратора, но не только с помощью этого кода. Я тоже пробовал сериализацию, но не сработало..

4. Проблема не имеет ничего общего с проблемой, но objects.create на самом деле вызывает .save() , поэтому вам не нужно вызывать его вручную, как вы делали

5. Я только хотел попробовать все, что думаю. хотя я знал это