我遇到了一个独特的问题。为了学习golang,我创建了一个Twitter类型的网站。它有推文,每条推文都有评论,每条评论都可以有子评论。
在homepage.html中显示struct pd
Env.Tpl.ExecuteTemplate(w, "homePage.html", pd)
其中pd是pagedata(为简单起见,我删除了额外的信息)
type PageData struct {
TweetView []tweets.TweetView
}
tweet.TweetView在哪里
type TweetView struct {
Tweet
CV []comments.Comment
}
其中comments.Comment是
type Comment struct {
TweetID int64
ParentCommentID int64
CommentID int64
CreatedAt time.Time
Name string
UserID int64
CommentMsg string
}
这很有效。但如果我用tweetView更改了CV,请注释.commentView ..模板停止显示TweetView。
comment.CommentView是
type CommentView struct { 评论 CC []评论 }
新的TweetView将被定义为
type TweetView struct {
Tweet
CV []comments.CommentView
}
在尝试进行数据存储区查询以将tweet对象提取到Tweetview
时出现此错误err := datastore.Get(ctx, tweetKey, &tweetView[v])
数据存储区:展平嵌套结构导致切片:字段 " CV",
我认为这是golang的限制。我该怎么办?
答案 0 :(得分:0)
我能够解决问题。问题出在datastore.Get查询。
我跑步时发出以下错误
err := datastore.Get(ctx, tweetKey, &tweetView[v])
数据存储区:展平嵌套结构导致切片:字段 " CV",
所以我改变了这样的查询
var tweetTemp Tweet
datastore.Get(ctx, tweetKey, &tweetTemp)
tweetSlice[v].Tweet = tweetTemp
如果您发现此方法存在问题,请与我们联系