相关疑难解决方法(0)

字符串作为SQL数据库中的主键

我不熟悉数据库及其工作原理.从性能角度(插入/更新/查询)到主键使用字符串比整数更慢吗?

sql database string database-design primary-key

165
推荐指数
7
解决办法
11万
查看次数

Django模型中的自定义ID字段

我在Django中制作一个Web应用程序。我想在模型中使用自定义id字段,并且我了解uuid模块。问题是我不知道将这个逻辑放在哪里。我不想使用Django的AutoField。我希望它是这样的,如果输入一行,则此id字段必须自定义而不是AutoField。我想到一个愚蠢的想法是,在使用我的自定义ID插入行之后,稍后更改ID字段。谁能帮我解决这个问题。非常感谢您的协助。

python django

2
推荐指数
1
解决办法
1万
查看次数

如何在保存时将整数添加到 Django 模型中的主键字段

在我的 Django 应用程序中,我创建了一个 id(主键)作为CharField长度为 6的模型。我使用了一个自定义验证器,它只允许用户输入整数。如果输入小于字段定义中指定的“六个”字符长度,是否可以在输入前添加零。

例如,用户在主键字段中输入值1234。现在我希望在保存时 pk 字段值应保存为001234

我尝试这样做,save但是正在创建两条记录,一条是用户输入的,另一条是添加了零的。

这完全有可能实现我想要做的事情吗?

编辑

这是我正在做的事情(虽然对我来说似乎技术含量很低):

class Plant(models.Model):
    plant_id = models.CharField(primary_key=True,..,)
    plant_name = models.CharField(max_length=55, verbose_name="Plant/W.Area")

    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        if len(self.plant_id) == 4:
            ramp_up_obj_id = '00' + str(self.plant_id)
            self.plant_id = str(ramp_up_obj_id)
        super().save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

保存的结果是(如上所述):对于1001 的输入值,创建了两条记录。一个是1001,另一个是001001

django primary-key django-models

2
推荐指数
1
解决办法
111
查看次数