【发布时间】:2021-08-16 01:20:56
【问题描述】:
在 django 项目中,我创建了一个名为“create_code”的默认函数来随机为 models.py 文件中的“code”字段生成一个默认值。
# models.py
class Project(models.Model):
name = models.CharField("Project name", max_length=255)
code = models.CharField("Code", max_length=10, default=create_code, editable=False)
在 admin.py 文件中,我将“code”设置为 readonly_field。
#admin.py
@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
fields = ('name', 'code')
readonly_fields = ('code', )
当我在管理页面中创建一个新的项目对象时会出现问题。出现“代码”的默认值(例如 ABCD),但是当我保存数据时,此值会更改为另一个值(例如 EFGH)。我认为创建了两个对象:一个在加载页面时创建,另一个在保存数据时创建。
如何从第一个对象读取“代码”值以覆盖最后一个对象并保存“ABCD”而不是“EFGH”?
【问题讨论】:
标签: python-3.x django