通过Django的邮递员问题发送数据

时间:2019-11-22 16:23:34

标签: django django-rest-framework postman

我正在尝试通过邮递员发送数据,它需要一个字段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")


0 个答案:

没有答案