我正在尝试通过邮递员发送数据,它需要一个字段null
。所以任何人都可以帮助我。而且我还是Django的初学者。
这是错误
django.db.utils.IntegrityError:“ user_id”列中的值为空 违反非空约束详情:失败行包含(6,MBBS, 奥伦堡大学,2019,null)。
我的模特是:
class MyUser(AbstractBaseUser):
gender_type = (('Male','Male'),('Female','Female'))
user_name = (('Doctor','Doctor'),('Patient','Patient'))
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
)
user_type = models.CharField(choices=user_name, max_length=7)
full_name = models.CharField(max_length=13,null=False)
mobile_number = models.CharField(max_length=13,null=True)
date_of_birth = models.DateField(auto_now_add=True)
gender = models.CharField(choices=gender_type, max_length=10)
blood_group = models.CharField(max_length=25,null=True)
address = models.CharField(max_length=255, null=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = MyUserManager()
USERNAME_FIELD = 'email'
class Educations(models.Model):
user = models.ForeignKey(MyUser, on_delete=models.CASCADE, related_name='edu_user')
doctor_degree = models.CharField(max_length=25)
university = models.CharField(max_length=25)
passing_year = models.IntegerField()
def __str__(self):
return self.doctor_degree
这里的用户是医生,我将其作为教育模式中的foreign key
其视图集是:
class EducationViewSet(viewsets.ViewSet):
def list(self,request):
eduss=Educations.objects.all()
edu_data_list=[]
for edu in eduss:
edu_data_list.append({
"doctor_degree" : edu.doctor_degree,
"university" : edu.university,
"passing_year" : edu.passing.year,
"doctor_name" : edu.user.full_name,
"doctor_mobile_number": edu.user.mobile_number,
"doctor_date_of_birth": edu.user.date_of_birth,
"doctor_blood_group": edu.user.blood_group,
"doctor_email": edu.user.email
})
return Response({"eduss":edu_data_list})
def create(self,request):
doctor_degree = request.data.get('doctor_degree')
university = request.data.get('university')
passing_year = request.data.get('passing_year')
user = request.user
education = Educations()
education.doctor = user
education.doctor_degree = doctor_degree
education.university = university
education.passing_year = passing_year
education.save()
return Response("successfully saved")