【问题标题】:django-tastypie how to assign default value in iddjango-tastypie 如何在 id 中分配默认值
【发布时间】:2015-04-28 10:33:59
【问题描述】:

我想通过调用任何其他函数来分配 id 在 api.py 类用户资源(模型资源): 类用户资源(模型资源):

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

【问题讨论】:

    标签: python django tastypie


    【解决方案1】:

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

    Hydrate 用于修改从用户那里收到并将被保存的有效负载。

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

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

    Docs for the hydrate cycle

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 2017-09-13
      • 2018-05-07
      • 1970-01-01
      • 2014-07-06
      • 2022-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多