beego orm 多对多插入和查询操作

Posted mishell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了beego orm 多对多插入和查询操作相关的知识,希望对你有一定的参考价值。

 

// User 用户表
type User struct {
	ID       int
	UserName string
	Password string
	Articles []*Article `orm:"rel(m2m)"`
}

// Article 文章表
type Article struct {
	ID       int       `orm:"pk;auto"`
	Artiname string    `orm:"size(60)"`
	Atime    time.Time `orm:"auto_now"`
	Acount   int       `orm:"default(20);null"`
	Acontent string
	Aimg     string
	ArticleType *ArticleType `orm:"rel(fk)"`
	Users []*User `orm:"reverse(many)"`
}

  

// 多对多插入,user
        article := models.Article{ID: id}
	// 1 获取多对多操对象
	m2m := o.QueryM2M(&article, "Users")
	// 2 获取插入对象
	username := c.GetSession("username").(string)
	beego.Info(username)
	var user = models.User{UserName: username}
	o.Read(&user, "UserName")
	// 3 多对多插入
	_, err = m2m.Add(&user)
	if err != nil {
		beego.Info("插入多对多失败")
	}    
// 多对多查询
 
        article := models.Article{ID: id}
        err = o.QueryTable("Article").RelatedSel("ArticleType").One(&article)
     o.LoadRelated(&article,"Users")      

  删除方法和添加方法一样,将add改成Remove即可。

以上是关于beego orm 多对多插入和查询操作的主要内容,如果未能解决你的问题,请参考以下文章

Python学习第135天(Django的ORM多对多查询)

ORM查询总结版

Python入门自学进阶-Web框架——6Django的ORM-多对多admin应用

ORM操作

Django ORM - 通过模型查询多对多?

django ORM 一对多, 多对多 查询 以及 结合Tamplate