Django rest framework ';TaskSerializer';对象没有属性';开始日期';
希望你很好 我的问题是如何在performcreate方法中获取用户输入数据 就像在Django中一样,我使用: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
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)