DRF JSONRenderer 'ReturnList' объект не имеет атрибута 'get'

Изменить: проблема в том, что вы использовали короткое объявление переменной :=, и вы только что сохранили созданное значение *DB в локальной переменной, а не в глобальной.

Эта строка:

db, err := NewDB(dbinfo)

Создает 2 локальные переменные: db и err, и этот локальный db не имеет ничего общего с вашей глобальной переменной db. Ваша глобальная переменная останется nil. Вы должны назначить созданную *DB глобальной переменной. Не используйте короткое объявление переменной, но простое назначение , например:

var err error
db, err = NewDB(dbinfo)
if err != nil {
    log.Fatal(err)
}

Далее следует исходный ответ.


Это тип указателя, у вас есть для его инициализации перед ее использованием. Нулевым значением для типов указателей является nil.

Вам не нужно экспортировать его (это то, что начинается с заглавной буквы). Обратите внимание, что не имеет значения, что у вас есть несколько файлов, если они являются частью одного и того же пакета, они могут получить доступ к идентификаторам, определенным друг другом.

Хорошим решением было бы сделать это в пакете init(), которая вызывается автоматически.

Обратите внимание, что sql.Open() может просто подтвердить свои аргументы, не создавая соединение с базой данных. Чтобы проверить правильность имени источника данных, вызовите DB.Ping() .

Например:

var db *sql.DB

func init() {
    var err error
    db, err = sql.Open("yourdrivername", "somesource")
    if err != nil {
        log.Fatal(err)
    }
    if err = db.Ping(); err != nil {
        log.Fatal(err)
    }
}

0
задан ytsejam 21 March 2019 в 18:26
поделиться

1 ответ

Я мог бы решить эту проблему, установив django-rest-framework-json-api.. Если кто-то столкнулся с проблемой, это преобразование dict в JSON.

0
ответ дан ytsejam 21 March 2019 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: