英文:
Beego orm - Relation doesn't work
问题
在下面的模型中:
package models
import "github.com/astaxie/beego/orm"
type Movie struct {
Id int `orm:"pk; auto; column(id); form: -"`
Title string `orm:"unique; column(title); form: title, text, title:"`
Plot string `orm:"column(plot); form: plot, text, plot:"`
ImdbID string `orm:"column(imdb_id); form: imdb_id, text, imdb_id:"`
Actors string `orm:"column(actors); form: actors, text, actors:"`
Runtime string `orm:"column(runtime); form: runtime, text, runtime:"`
Year string `orm:"column(year); form: year, text, year:"`
Genre *Genre `orm:"rel(fk); on_delete(do_nothing)"`
Cover string `orm:"column(cover); form: cover, text, cover:"`
Status int `orm:"column(status); form: status, int, status:"`
}
func (a *Movie) TableName() string {
return "app_movie"
}
func init() {
orm.RegisterModel(new(Movie))
}
我想引用以下模型:genre模型,它看起来像这样:
package models
import "github.com/astaxie/beego/orm"
type Genre struct {
Id int `orm:"pk; auto; column(id); form: -"`
Title string `orm:"unique; column(title); form: title, text, title:"`
Status int `orm:"column(status); form: status, int, status:"`
}
func (a *Genre) TableName() string {
return "app_genre"
}
func init() {
orm.RegisterModel(new(Genre))
}
有关信息,它连接到一个带有数据的sqlite数据库(DB first)。
在控制器中,我遍历电影列表并打印出:movie.Genre.Title,但是它是空的。如果我查看movie.Genre,我得到:{3 0}
如何获取标题和ID?或者我做错了什么?
谢谢你的帮助!
英文:
in the following model:
package models
import "github.com/astaxie/beego/orm"
type Movie struct {
Id int `orm:"pk; auto; column(id)"; form: "-"`
Title string `orm:"unique; column(title)"; form: "title, text, title:`
Plot string `orm:"column(plot)"; form: "plot, text, plot:"`
ImdbID string `orm:"column(imdb_id)"; form: "imdb_id, text, imdb_id:"`
Actors string `orm:"column(actors)"; form: "actors, text, actors:"`
Runtime string `orm:"column(runtime)"; form: "runtime, text, runtime:"`
Year string `orm:"column(year)"; form: "year, text, year:"`
Genre *Genre `orm:"rel(fk); on_delete(do_nothing)"`
Cover string `orm:"column(cover)"; form: "cover, text, cover:"`
Status int `orm:"column(status)"; form: "status, int, status:"`
}
func (a *Movie) TableName() string {
return "app_movie"
}
func init() {
orm.RegisterModel(new(Movie))
}
I would like to refer to: the genre model, which looks like:
package models
import "github.com/astaxie/beego/orm"
type Genre struct {
Id int `orm:"pk; auto; column(id)"; form: "-"`
Title string `orm:"unique; column(title)"; form: "title, text, title:`
Status int `orm:"column(status)"; form: "status, int, status:"`
}
func (a *Genre) TableName() string {
return "app_genre"
}
func init() {
orm.RegisterModel(new(Genre))
}
For information it goes to an sqlite db with data (DB first).
In the controller i iterate over a list of movies and print out: movie.Genre.Title but its empty. If I watch on movie.Genre I get: {3 0}
What to do to get to the title and the ID? Or. what am I doing wrong?
Thanks for your help!
答案1
得分: 2
num, err := qs
.Limit(4)
.Filter("status", true)
.RelatedSel()
.Exclude("useritem__userid", 1)
.OrderBy("-id")
.All(&movies)
一切都正常运行。:)
.RelatedSel()
英文:
num, err := qs
.Limit(4)
.Filter("status", true)
.RelatedSel()
.Exclude("useritem__userid", 1)
.OrderBy("-id")
.All(&movies)
> all works fine. .RelatedSel()
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论