在 django-tastypie 应用程序中,我有以下 Django 模型:
class Car(models.Model):
name=models.CharField('name',max_length=64)
class CarTrack(models.Model):
car=models.ForeignKey(Car)
tdata=models.CharField('track data',max_length=255)
created = models.DateTimeField('created time',auto_now_add=True)
我创建了以下美味的资源:
class CarRsc(ModelResource):
class Meta:
queryset=Car.objects.all()
resource_name='car'
authentication = Authentication()
authorization=Authorization()
class CarTrackRsc(ModelResource):
car=fields.ForeignKey(CarRsc, 'car')
class Meta:
queryset=Detection.objects.all()
resource_name='track'
authentication = Authentication()
authorization=Authorization()
def hydrate(self, bundle):
if not bundle.obj.pk:
bundle.obj.car=bundle.request.user.get_profile().car
return bundle
当客户发布新的 CarTrackRsc(例如,{“tdata”:“blablabla”})时,我想将 CarTrack 的外键设置为某辆车。在上面的示例中,我尝试重写 hydrate 方法来实现它(通过获取当前登录用户的汽车)。但似乎它不起作用。这是正确的方法吗?sweetpie 文档确实给出了如何使用 hydrate 方法的示例,但它只是一个简单的字段,没有给出关于关系字段(例如外键)的进一步提示。