当前位置: 首页 > 面试题库 >

创建Django模型或更新(如果存在)

陈弘厚
2023-03-14
问题内容

我想创建一个模型对象,例如Person,如果不存在person的id,否则我将获得该person对象。

创建新人员的代码如下:

class Person(models.Model):
    identifier = models.CharField(max_length = 10)
    name = models.CharField(max_length = 20)
    objects = PersonManager()

class PersonManager(models.Manager):
    def create_person(self, identifier):
        person = self.create(identifier = identifier)
        return person

但是我不知道在哪里检查并获取现有的人对象。


问题答案:

Django中已经有一个get_or_create,https://docs.djangoproject.com/en/dev/ref/models/querysets/#get-
or-create

对你来说可能是:

id = 'some identifier'
person, created = Person.objects.get_or_create(identifier=id)

if created:
   # means you have created a new person
else:
   # person just refers to the existing one


 类似资料:
  • 目前,我正在用一个查询检查该项是否存在,然后使用put或updateItem,我想更改它并对DDB进行一次调用。我想进行一个将更新或创建项目的查询。 下面是我的项目的一个例子: 项目类型: 如果项目存在,我想推送一个新项目,比如{papa:'dsfadsf'}(永远不要修改fa映射内的现有项目),并修改pa映射内的finish值 这是更新后的项目: 这是我尝试的,但不起作用

  • 问题内容: 我想向数据库表中添加一行,但是如果存在具有相同唯一键的行,我想更新该行。 例如: 假设唯一键为,并且在我的 数据库 中有一行。在这种情况下,我想用这些值更新该行。通常,这会产生错误。 如果使用它,将忽略该错误,但仍不会更新。 问题答案: 采用 查询:

  • 我有一个巨大的字符串,我想保存为Django模型中的文件。为了做到这一点,我编写了以下代码: 这产生了一个错误, ’_ io。TextIOWrapper对象没有属性“_committed” 但是在网上搜索解决方案后,我陷入了死胡同。任何建议将不胜感激! 环境: 请求方法:获取请求 URL:http://127.0.0.1:8000/app/dbkarga/6/ Django版本:1.11.1 Py

  • 问题内容: 我在下面有一个SQL插入程序,它工作正常,但是我希望它检查DATE = xxxx,NAME = xxxx和JOB = xxx并更新HOURS(如果它们存在),否则插入新行。SQL可以做到这一点吗? 尝试以下具有相同结果的OR替换,每次都会添加一个新行。 例如: 如果以下内容位于数据库中,并且John要更新其工作时间,它将检查名称,日期,作业是否与尝试插入的值相同,并且它们是否仅更新HO

  • 我想向数据库表中添加一行,但如果存在具有相同唯一键的行,我想更新该行。 我的问题是: 但是,它将继续插入新的记录。假设是唯一键。如果存在,则不会将新记录插入数据库;同时更新记录。 我也试过这个: 我不确定我的代码是否存在for循环问题。 我使用for循环插入所有数据。 这是echo$query的输出; SQL表

  • 问题内容: 我很沮丧,我不知道该怎么做。 基本上,我只想创建一个表,但是如果它存在,则需要将其删除并重新创建,而不是将其截断,但是如果不存在,则可以创建它。 有人可以帮忙吗? 谢谢乔治 问题答案: 放在tablename您的发言之前。 该语句将删除该表(如果存在),但如果不存在则不会引发错误。