Beego orm - Relation doesn't work

时间:2015-10-29 15:43:12

标签: go orm beego

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 个答案:

答案 0 :(得分:1)

num, err := qs
    .Limit(4)
    .Filter("status", true)
    .RelatedSel()
    .Exclude("useritem__userid", 1)
    .OrderBy("-id")
    .All(&movies)
  

一切正常。 :) .RelatedSel()