здесь есть функция 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"))
вот моя таблица пассивов 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? Пожалуйста, помогите мне сохранить данные из внешнего интерфейса в таблицу пассажиров.