django-tastypie如何在id中指定默认值

时间:2015-04-28 10:34:00

标签: python django tastypie

tastypie我想在调用任何其他函数时分配id 在api.py class UserResource(ModelResource): class UserResource(ModelResource):

class Meta:
    collection_name="data"
    queryset = User.objects.all()
    resource_name = 'user'
    authorization = Authorization()


def dehydrate(self, bundle):
    bundle.data['user_id'] = "1"  # want to call one function here
    return bundle

但这不起作用,错误是

IntegrityError at /v0/user
(1048, "Column 'user_id' cannot be null")

我的型号代码

class User(models.Model):
    user_id = models.IntegerField(primary_key=True)
    mobile_country_code = models.CharField(max_length=10L, blank=True)
    mobile_no = models.CharField(max_length=15L)
    email = models.CharField(max_length=75L, blank=True)
    email_phone = models.CharField(max_length=75L, blank=True)
    gcm_regid = models.TextField()
class Meta:
    db_table = 'users'

如何调用一个函数来获取其他表的id

1 个答案:

答案 0 :(得分:1)

我假设您正尝试使用POST / PUT / PATCH请求编写用户。您的问题是您使用的是dehydrate而不是hydrate

水合物用于修改从用户收到的有效负载并将被保存。

Dehydrate用于修改将返回给用户的有效负载。

因为我假设您正在尝试编写数据,所以dehydrate永远不会被调用,直到您已经保存用户为止。

Docs for the hydrate cycle