Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django tastpie,如何使用一次创建post调用来添加/保存两个模型_Django_Django Models_Tastypie - Fatal编程技术网

Django tastpie,如何使用一次创建post调用来添加/保存两个模型

Django tastpie,如何使用一次创建post调用来添加/保存两个模型,django,django-models,tastypie,Django,Django Models,Tastypie,我正在尝试使用tastypie从django后端向android应用程序提供一个restful api 我的示例数据库模型是: class Device(models.Model): userprofile = models.ForeignKey(UserProfile, null=True) device_id = models.CharField(max_length=512) os = models.CharField(max_length=128, null=Tr

我正在尝试使用tastypie从django后端向android应用程序提供一个restful api

我的示例数据库模型是:

class Device(models.Model):
    userprofile = models.ForeignKey(UserProfile, null=True)
    device_id = models.CharField(max_length=512)
    os = models.CharField(max_length=128, null=True)
    manufacturer = models.CharField(max_length=128, null=True)
    registered_on = models.DateTimeField(default=datetime.now)

    class Meta:
        ordering = ['registered_on']
        verbose_name_plural = 'Devices'

    def __unicode__(self):
        return self.device_id


class DeviceSession(models.Model):

    device = models.ForeignKey(Device)
    device_token = models.CharField(max_length=512, blank=True)
    new_token = models.CharField(max_length=512, null=True)
    is_valid = models.BooleanField(default=True)
    issued_date = models.DateTimeField(default=datetime.now)
    expiry_date = models.DateTimeField(null=True)
我的resources.py文件是:

class DeviceResource(ModelResource):
    class Meta:
        queryset = Device.objects.all()
        authorization = Authorization()
        allowed_method = ['get','post']
现在,当我收到对设备url ie的创建请求时,如何在这两个模型中创建条目


我是django的新手,因此会要求ppl以较低的复杂度回答。

Tastypie提供了一个可以使用的函数,即obj_create,您可以在创建设备对象模型时使用该函数为DeviceSession模型创建条目

例如:

def obj_create(self, bundle, **kwargs):
     bundle = super(DeviceResource, self).obj_create(bundle, **kwargs)
     new_object = DeviceSession() 
     new_object.device = bundle.obj
     new_object.device_token = 'what ever or data coming from post?'
     new_object.save()
     return bundle

此函数在创建设备对象捆绑包时创建DeviceSession对象。obj是设备的创建对象

如何访问来自post的数据???.bundle.data['post data']是否也有类似的放置和删除方法?