英文:
How to make fields in QoR model readonly?
问题
我有一个数据模型:
type Epg struct {
gorm.Model
Uri string `gorm:"not null;unique"`
Prefix string `gorm:"size:64;not null;default:''"`
Etag string
Updated time.Time
Status bool `gorm:"default:true"`
}
我在菜单中发布了这个数据模型:
EpgResource := Admin.AddResource(&models.Epg{}, &admin.Config{Menu: []string{"Content"}})
现在我可以通过QoR Admin面板查看和编辑数据。但是我想将Etag
、Updated
和Status
的值设置为只读,因为它们是由系统更新的。
如果我尝试根据文档将这些字段设置为只读:
EpgResource.Meta(&admin.Meta{Name: "Etag", Type: "Readonly"})
我得到了一个错误。是否可能使数据模型中的某些字段可见但只读?如何做到这一点?
错误日志跟踪。
2017/04/25 01:16:04 Finish [GET] /admin/epgs Took 19.59ms
/usr/local/go/src/text/template/exec.go:433
/usr/local/go/src/text/template/exec.go:536
/usr/local/go/src/text/template/exec.go:668
/usr/local/go/src/reflect/value.go:302
/usr/local/go/src/reflect/value.go:434
/usr/local/go/src/runtime/asm_amd64.s:515
/home/rns/golang/src/github.com/qor/admin/func_map.go:1051
/home/rns/golang/src/github.com/qor/admin/func_map.go:220
/home/rns/golang/src/github.com/qor/admin/func_map.go:236
/home/rns/golang/src/github.com/qor/admin/func_map.go:393
got error when render form template for Etag(Readonly): haven't found form
template for meta Etag
英文:
I have a data model:
type Epg struct {
gorm.Model
Uri string `gorm:";not null;unique"`
Prefix string `gorm:"size:64;not null;default:''"`
Etag string
Updated time.Time
Status bool `gorm:"default:true"`
}
I publish this data model in menu:
EpgResource := Admin.AddResource(&models.Epg{}, &admin.Config{Menu: []string{"Content"}})
Now I can view and edit data via QoR Admin panel. But I want to make values Etag
, Updated
, Status
to be readonly because they are updated by the system.
If I try to make this fields readonly according documentation:
EpgResource.Meta(&admin.Meta{Name: "Etag", Type: "Readonly"})
I got an error. Is it possible to make some fields in data model visible but readonly? How to do that?
Error log trace.
> 2017/04/25 01:16:04 Finish [GET] /admin/epgs Took 19.59ms
> /usr/local/go/src/text/template/exec.go:433
> /usr/local/go/src/text/template/exec.go:536
> /usr/local/go/src/text/template/exec.go:668
> /usr/local/go/src/reflect/value.go:302
> /usr/local/go/src/reflect/value.go:434
> /usr/local/go/src/runtime/asm_amd64.s:515
> /home/rns/golang/src/github.com/qor/admin/func_map.go:1051
> /home/rns/golang/src/github.com/qor/admin/func_map.go:220
> /home/rns/golang/src/github.com/qor/admin/func_map.go:236
> /home/rns/golang/src/github.com/qor/admin/func_map.go:393
> got error when render form template for Etag(Readonly): haven't found form
> template for meta Etag
答案1
得分: 1
那个特定的错误是由于qor
在.../metas/form/Etag.tmpl
找不到模板文件引起的,这个模板文件可能是用来将Etag
渲染到表单中的。(你可以将模板渲染为只读/静态元素,而不是输入框)
英文:
That particular error is being caused by qor
not finding a template file at .../metas/form/Etag.tmpl
, which is presumably needed to actually render the Etag
to the form. (You can make the template render a readonly/static element rather than an input)
答案2
得分: 0
EpgResource.Meta(&admin.Meta{Name: "Etag", Type: "Readonly"})
只能在 Darwin(Mac)机器上工作,而不能在 Linux 机器上工作。
请执行以下操作:
EpgResource.Meta(&admin.Meta{Name: "Etag", Type: "readonly"})
希望这能帮到你。
参考链接:https://doc.getqor.com/admin/metas/hidden-readonly.html#readonly
英文:
EpgResource.Meta(&admin.Meta{Name: "Etag", Type: "Readonly"})
would work only on darwin (Mac) machines. But, not on linux machines.
Do the following:
EpgResource.Meta(&admin.Meta{Name: "Etag", Type: "readonly"})
I hope this helps.
Reference: https://doc.getqor.com/admin/metas/hidden-readonly.html#readonly
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论