2015-04-28 38 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

很高興我能幫助! –