我使用自定义创建方法create_actor
创建模型的对象,如下所示:
class ActorsManager(models.QuerySet):
def create_actor(self, email,
actortype,
locationid,
primaryphone, actoruniversalid):
actor = self.model(email=email,
actortype=actortype,
locationid = locationid,
primaryphone=primaryphone, actoruniversalid= actoruniversalid)
actor.save(using='gpr')
return actor
actor_entry = Actors.objects.using('gpr').create_actor(email='', actortype=1, locationid = location_entry,primaryphone='', actoruniversalid= new_bluenumber)
我没有在actor_entry
变量中获取最近创建的对象,
也许我做错了什么,请帮忙。在
我使用一个before insertSQL触发器在数据库中将uuid生成为pk(这里是CharField),因此对象在保存之前确实有一个pk(由数据库生成)。在
演员模型
^{pr2}$
除非您手动创建了}
actors
表,否则不会自动设置ActorID
。根据您的数据库后端,None
可能被视为空字符串,因此可能是有效的主键。我相信Django会采取特殊措施来更新具有相同主键的行,除非您在调用save()
时指定^{正如@knbk指出的,只有AutoField可以设置对象的pk,因此当它不是AutoField时,检索pk的pythonic逻辑就不会执行,因此django不知道它。在
在搜索了django文档之后,我找到了uuid的AutoField的替代品,UUIDField最适合我的用例。在
所以现在django确实知道pk,因此对象在保存后被检索。在
谢谢大家的帮助。在
相关问题 更多 >
编程相关推荐