我们如何在 GORM/Golang 中创建与 Django field.choices 相似的模型字段类型
How can we create a similar model field type to Django field.choices in GORM/Golang
我正在尝试创建一个结构字段,并将其值限制为一个值列表,即
state =["locked", "unlocked"]
现在在 Django 模型中我们使用字段选择,即
class Book(models.Model):
LOCKED = 'LK'
UNLOCKED = 'UN'
STATE = [
('LK', 'Locked'),
('UL', 'Unlocked'),
]
book_state = models.CharField(choices=STATE, default=LOCKED)
尝试在 Go 中使用 gorm.model 结构数据类型复制上述内容。
解决方案:创建一个带有字符串的自定义 golang 类型并将其添加为 gorm 模型字段
type BookState string
const (
Locked BookState = "locked"
Unlocked BookState = "unlocked"
)
然后创建你的 gorm 结构模型字段
type Book struct {
Name string `json:"name" validate:"required"`
State BookState `json:"state" validate: "required"`
....
}
我正在尝试创建一个结构字段,并将其值限制为一个值列表,即
state =["locked", "unlocked"]
现在在 Django 模型中我们使用字段选择,即
class Book(models.Model):
LOCKED = 'LK'
UNLOCKED = 'UN'
STATE = [
('LK', 'Locked'),
('UL', 'Unlocked'),
]
book_state = models.CharField(choices=STATE, default=LOCKED)
尝试在 Go 中使用 gorm.model 结构数据类型复制上述内容。
解决方案:创建一个带有字符串的自定义 golang 类型并将其添加为 gorm 模型字段
type BookState string
const (
Locked BookState = "locked"
Unlocked BookState = "unlocked"
)
然后创建你的 gorm 结构模型字段
type Book struct {
Name string `json:"name" validate:"required"`
State BookState `json:"state" validate: "required"`
....
}