2015-04-28 37 views
0

tastypie我想与调用任何其它功能 在api.py 类UserResource(ModelResource)分配ID分配默认值: 类UserResource(ModelResource):Django的tastypie如何ID

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

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

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

当您修改将要返回给用户的有效载荷时,为脱水。

因为我假设您正在尝试写入数据,所以您的dehydrate永远不会被调用,直到可能在您保存了用户之后。

Docs for the hydrate cycle

+0

感谢名单为我工作 – RahulG

+1

很高兴我能帮助! –