Как создать объект модели, который через пользовательский foreignkey, FOREIGN KEY constraint failed?

В моем представлении я создаю объект, и в этой модели, которую я создаю, есть одно поле, name=models.ForeignKey(User, on_delete=models.CASCADE). И я использую ForeignKey, потому что в этом объекте может быть сделано несколько раз одним пользователем. И я получаю ошибку
django.db.utils.IntegrityError: FOREIGN KEY constraint failed

Вот модель:

from django.contrib.auth.models import User

...

class Customer_status(models.Model):
    name = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
    creation_date = models.CharField(max_length=28)
    status=models.CharField(max_length = 8)

    def __str__(self):
        return str(self.name) + '_' +str(self.id)

В этом представлении я создаю такую модель:

def status_create(request):
    Customer_status.objects.create (
        name=request.user, creation_date=datetime.datetime.now(), status='Pending'
    )

Дело в том, что у меня было поле OneToOne на имя и у меня была ошибка целостности Unique, после того как я изменил его на ManyToMany у меня появилась эта ошибка django.db.utils.IntegrityError: FOREIGN KEY constraint failed. Я думаю, что ошибку вызывает "name=request.user" в шаге создания

В Django, если внешний ключ назначен определенному полю, то при сохранении дочернего объекта необходимо передать объект этой родительской модели. При создании объекта проверяется, аутентифицирован пользователь или нет. Если пользователь не аутентифицирован, Django выдает ошибку.

Вы можете проверить, аутентифицирован ли пользователь по request.user.is_authenticated.

В коде добавьте:

def status_create(request):
    if request.user.is_authenticated:
        Customer_status.objects.create (
            name=request.user, creation_date=datetime.datetime.now(), status='Pending')
Вернуться на верх