我正在尝试使用 Gorm 在单个 postgresql 字段中保存一组数字。
该数组需要是一个包含 2 到 13 个数字的列表:[1, 2, 3, 5, 8, 13, 21, 40, 1000]
保存单个 int64 时一切正常。当我尝试更改模型以解释 int64 数组时,它给了我以下错误:
“恐慌:postgres 的 sql 类型(切片)无效”
我的 Gorm 模型是:
type Game struct {
gorm.Model
GameCode string
GameName string
DeckType []int64
GameEndDate string
}
Run Code Online (Sandbox Code Playgroud)
根据@pacuna 的回答进行更新。我尝试了建议的代码,但遇到了类似的错误。
“恐慌:postgres 的 sql 类型 Int64Array(切片)无效”
这是完整的代码块:
package main
import (
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
pq "github.com/lib/pq"
)
var db *gorm.DB
// Test -- Model for Game table
type Test struct {
gorm.Model
GameCode string …Run Code Online (Sandbox Code Playgroud) 我正在使用SessionWizardView在多个页面上划分一个小调查.
我的问题是,调查的每个页面的数据都保存在我的数据库中的不同行上,其中一个页面上有多个输入字段,信息将保存在同一行中.这使我的数据库非常麻烦.
我将问题以我的save()功能这是越来越每当有一个执行form我的form_list,因此增加每次在数据库中的新行.
def done(self, form_list, **kwargs):
for form in form_list:
form.save()
return render(self.request, 'Return_to_Prolific_Academic.html', {
'form_data': [form.cleaned_data for form in form_list],
})
Run Code Online (Sandbox Code Playgroud)
我试图直接在form_list上执行save form_list.save()但是我收到错误:
'list'对象没有属性'save'
我也试过两个join(),chain()看看我是否可以将所有form实例连接起来,看看我是否可以同时保存它们但是不成功.
我想简化我当前的解决方案,以便每个参与者的数据都保存在数据库的一行中,任何人都可以告诉我如何去做吗?谢谢
编辑
我的一些models.py和forms.py的示例
models.py
class Person(models.Model):
....
....
sender = models.EmailField(null=True, blank=True, verbose_name='What is your email address?')
birthdate = models.DateField(null=True, blank=True) #overwritten in forms.py so passed no more arguments
SEX = (
('1', 'Male'),
('2', 'Female'))
sex = models.CharField(null=True, blank=True, …Run Code Online (Sandbox Code Playgroud)