Django-Tastypie如何在ID中指定默认值

2024-09-30 20:24:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过调用任何其他函数来分配id 在api.py公司 类用户资源(ModelResource): 类用户资源(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


Tags: 函数用户idtruemodels资源lengthmax
1条回答
网友
1楼 · 发布于 2024-09-30 20:24:22

我假设您正试图用POST/PUT/PATCH请求来编写用户。您的问题是使用dehydrate而不是hydrate。你知道吗

Hydrate用于修改从用户收到并将被保存的有效负载。你知道吗

Dehydrate用于修改将返回给用户的有效负载时。你知道吗

因为我假设您正在尝试写入数据,所以您的dehydrate永远不会被调用,除非您已经保存了您的用户。你知道吗

Docs for the hydrate cycle

相关问题 更多 >