(1048, «Столбец cni c 'не может быть пустым», ошибка повторяющейся записи и т. Д. c значение не может быть сохранено в базе данных с помощью функции add_user_save - PullRequest
0 голосов
/ 22 апреля 2020
  1. здесь есть функция add_user_save в managerviews.py

    def add_user_save(request):
    if request.method!="POST":
    return HttpResponse("Method Not Allowed")
    else:
    first_name=request.POST.get("first_name")
    last_name=request.POST.get("last_name")
    username=request.POST.get("username")
    email=request.POST.get("email")
    password=request.POST.get("password")
    cnic=request.POST.get("cnic")
    contact_number=request.POST.get("contact_number")
    gender=request.POST.get("gender")
    
    
    #try:
    user=CustomUser.objects.create_user(username=username,password=password,email=email,last_name=last_name,first_name=first_name, user_type=3)
    user.passenger.cnic=cnic
    user.passenger.first_name=first_name
    user.passenger.last_name=last_name
    user.passenger.email=email 
    user.passenger.contact_number=contact_number
    user.passenger.gender=gender
    user.passenger.save()
    user.save()
        #messages.success(request,"Successfully Added User")
        #return HttpResponseRedirect(reverse("add_user"))
    #except:
        #messages.error(request,"Failed to Add User")
        #return HttpResponseRedirect(reverse("add_user"))
    
  2. вот моя таблица пассивов models.py

    class Passenger(models.Model):
    cnic=models.BigIntegerField(primary_key=True)
    admin=models.OneToOneField(CustomUser,on_delete=models.CASCADE, 
    blank=False, 
     null=True)
    manager_id=models.ForeignKey(Manager,on_delete=models.CASCADE, 
    blank=True, 
    null=True)
    staff_id=models.ForeignKey(Staff,on_delete=models.CASCADE, blank=True, 
    null=True)
    fisrt_name=models.CharField(max_length=255, default='non')
    last_name=models.CharField(max_length=255, default='non')
    email=models.CharField(max_length=255, default='non')
    contact_number=models.IntegerField( null=True)
    gender=models.CharField(max_length=255,  default='non')
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now_add=True) 
    
    def __str__(self):
    return self.cnic
    

Должен ли я изменить следующую функцию? Я не знаю, что добавить здесь (usertype = 3 - пассажирский пользователь)

 @receiver(post_save,sender=CustomUser)
 def create_user_profile(sender,instance,created,**kwargs):
  if created:
    if instance.user_type==1:
        Manager.objects.create(admin=instance)
    if instance.user_type==2:
        Staff.objects.create(admin=instance)
    if instance.user_type==3:
        Passenger.objects.create(admin=instance)

Проблема в том, что значение не добавлено в базу данных. Я часто искал, добавляя blank = true, null = true, но ошибка меняется каждый раз , Иногда на администраторе появляется дубликат ключа, а иногда, например, cni c не может быть пустым. Есть ли проблема в models.py? Пожалуйста, помогите мне сохранить данные из внешнего интерфейса в таблицу пассажиров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...