Django rest framework ';TaskSerializer';对象没有属性';开始日期';

Django rest framework ';TaskSerializer';对象没有属性';开始日期';,django-rest-framework,Django Rest Framework,希望你很好 我的问题是如何在performcreate方法中获取用户输入数据 就像在Django中一样,我使用: form.some_field 要获取字段数据,但我无法在rest framework中执行此操作: def perform_create(self, serializer): if serializer.start_date > date.today(): serializer.status = "Schedule" se

希望你很好

我的问题是如何在performcreate方法中获取用户输入数据

就像在Django中一样,我使用:

form.some_field
要获取字段数据,但我无法在rest framework中执行此操作:

def perform_create(self, serializer):
    if serializer.start_date > date.today():
        serializer.status = "Schedule"
    serializer.save(user=self.request.user)
我得到这个问题:

'TaskSerializer' object has no attribute 'start_date'
这是我的模型:

class Task(models.Model):
    status_options = (("In Progress","In Progress",),("Cancelled","Cancelled",),("Completed","Completed",),("Schedule","Schedule",),)
    priority_options = (("Low","Low",),("Medium","Medium",),("High","High",),)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    description = models.TextField()
    priority = models.CharField(max_length=124, choices=priority_options, default="Low")
    status = models.CharField(max_length=124, choices=status_options, default="In Progress")
    start_date = models.DateField()
    end_date = models.DateField()
    timestamp = models.DateField(auto_now_add=True)
    altimedatetamp = models.DateTimeField(auto_now_add=True)
    recurring = models.BigIntegerField(default=0) 
    ....

您必须访问
序列化程序.已验证的\u数据
,才能获取模型字段值。 而不是在序列化程序中操纵<代码>状态值,考虑将它传递到<代码>保存< /代码>方法,就像你和用户一样。< /P> 您的
perform\u create
应该如下所示:

def perform_create(自、序列化程序):
如果serializer.validated_数据['start_date']>date.today():
serializer.save(user=self.request.user,status='Schedule')
其他:
serializer.save(user=self.request.user)