作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
[更新:将问题标题更改为更具体]
对不起,如果我没有很好地提出问题,我不知道该怎么做:
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)此函数将自动用下一个数字填充 clientcode
字段(即,如果您有 132 个客户端,当您添加下一个时,该字段将用 clientcode
填充编号 133)
我知道这在大多数实际情况下是荒谬的,因为 PK 编号也是自动递增的,但在 django 管理器中无法自动填充或实际使用它。
[更新:正如我在评论中所说,有一种方法可以为此使用主键,但它不会填充 before 保存字段]
关于python - 如何在 django admin 中创建一个自动填充和自动递增的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123796/
我是一名优秀的程序员,十分优秀!