首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何reset_sequence在DjangoModelFactory中默认id字段序列

如何reset_sequence在DjangoModelFactory中默认id字段序列
EN

Stack Overflow用户
提问于 2018-11-13 23:26:42
回答 1查看 568关注 0票数 0

有一家工厂,如:

代码语言:javascript
复制
class UserFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = User

默认情况下,模型的id字段将从1. 开始,我希望id以更高的数字开始,例如50000.

除非在工厂中添加这一行,否则使用UserFactory.reset_sequence(50000)不起作用。

代码语言:javascript
复制
id = factory.Sequence(lambda n: n)

我有很多测试都依赖于默认的id增量行为,所以这种方式是否定的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-13 23:26:42

我能找到的唯一解决办法是创建一个从49999开始的User对象。

代码语言:javascript
复制
if not UserFactory.objects.filter(id=49999).exists():
    UserFactory(49999)

现在你可以做了

代码语言:javascript
复制
print(UserFactory().id)
>>> 50000

现在,如果您的模型的id是一个自动字段,那么您很可能不得不修改底层数据库模式,或者求助于reset_sequence方法。How to get Django AutoFields to start at a higher number

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53290991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档