gpt4 book ai didi

python - 如何在 django admin 中创建一个自动填充和自动递增的字段

转载 作者:IT老高 更新时间:2023-10-28 21:08:24 25 4
gpt4 key购买 nike

[更新:将问题标题更改为更具体]

对不起,如果我没有很好地提出问题,我不知道该怎么做:

class WhatEver():
number = model.IntegerField('Just a Field', default=callablefunction)
...

在哪里 callablefunction做这个查询:

from myproject.app.models import WhatEver

def callablefunction():
no = WhatEver.objects.count()
return no + 1

想自动写下一个数字,不知道怎么做。

我有来自 callablefunction 的错误声明它无法导入模型,我认为必须有一种更简单的方法来做到这一点。甚至没有必要使用它,但我不知道如何使用 pk 号。

我已经用谷歌搜索过了,我唯一发现的是使用 save() 方法自动增加数字...但我想在 <textfield> 中显示它保存之前...

你会怎么做?

最佳答案

明白了!我希望这将帮助每个在 django 中制作自动填充和自动递增字段时遇到任何问题的人。解决办法是:

class Cliente(models.Model):
"""This is the client data model, it holds all client information. This
docstring has to be improved."""
def number():
no = Cliente.objects.count()
if no == None:
return 1
else:
return no + 1

clientcode = models.IntegerField(_('Code'), max_length=6, unique=True, \
default=number)

[... here goes the rest of your model ...]

保重:

  • number 函数不接受任何参数(甚至不接受 self)
  • 它写在之前模型中的所有内容
  • 这是在 django 1.2.1 上测试的

此函数将自动用下一个数字填充 clientcode 字段(即,如果您有 132 个客户端,当您添加下一个时,该字段将用 clientcode 填充编号 133)

我知道这在大多数实际情况下是荒谬的,因为 PK 编号也是自动递增的,但在 django 管理器中无法自动填充或实际使用它。

[更新:正如我在评论中所说,有一种方法可以为此使用主键,但它不会填充 before 保存字段]

关于python - 如何在 django admin 中创建一个自动填充和自动递增的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com