Как использовать данные из postgresql в django?

Я перешел с sqlite на postgresql после Django: Каковы лучшие практики для миграции проекта с sqlite на PostgreSQL четвертый ответ.

Вот мои обновленные настройки:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'scraper',
        'USER':'user',
        'HOST':'localhost',
        'PORT':5432,
    }
}

Однако я не могу найти/захватить какие-либо данные из моей базы данных. Вот некоторые примеры данных из базы данных: enter image description here

Я пытался

python manage.py dumpdata

Но получите вот это:

[{"model": "auth.permission", "pk": 1, "fields": {"name": "Can add log entry",
 "content_type": 1, "codename": "add_logentry"}}, {"model": "auth.permission", "pk": 2,
 "fields": {"name": "Can change log entry", "content_type": 1, "codename":
 "change_logentry"}}, {"model": "auth.permission", "pk": 3,
... 

Я хотел загрузить эти данные на основе моего текущего приложения: models.py

from django.db import models

class Cruises(models.Model):
    title = models.CharField(max_length=200)
    #ship_name = models.CharField(blank=True, null=True,max_length = 200)

    def __str__(self):
        return self.title

views.py

from django.shortcuts import render
#from .models import Cruises
from .models import Cruises
def basic(request): 
    #form_destination =  Cruises
    long_list = Cruises.objects.values('title')
    return render(request, 'cruise_control/basic.html', context = {'long_list':long_list})

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('',views.basic, name = 'basic')
]

basic.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Cruises</title>
  </head>
<body>
<h1> Cruise Control </h1>


<form action="/action_page.php">
  <label for='destination'>Destination</label>
  <input type="text" list="destination" />
  <datalist id="destination">
  {% for lng_l in long_list %}
  <option>{{lng_l.title}}</option>
  {% endfor %}
  </datalist>
  <!label for="cruisetime">Departure date</label>
  <!input type="date" id="cruisetime" name="cruisetime" min={{dep_l.departureDate}}>
  <!input type="submit">
</form>

</body>
</html>

Однако, поскольку он не захватывает ни одного из данных, я получаю следующее без каких-либо значений в раскрывающемся списке: enter image description here

Попробуйте

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'scraper',
        'USER':'user',
        'HOST':'localhost',
        'PORT':5432,
    }
}

django.db.backends.postgresql_psycopg2 использовался в django <1.8 и был переименован в django 1.9 в django.db.backends.postgresql

я не могу найти вопрос, но я могу сказать:

  1. дамп всех данных из your_app_name

    ./manage.py dumpdata your_app_name > your_model_data_filename.json

2.дамп всех данных из модели your_model_name в приложение your_app_name app

./manage.py dumpdata your_app_name.your_model_name > your_model_data_filename.json
  1. загрузите данные, если вы уже выполнили миграцию и правильно назвали имена приложений и моделей

    .

    ./manage.py loaddata your_filename.json

Будьте внимательны: если дамп не работает для utf8, попробуйте изменить опцию --format на xml. json по умолчанию.

Вернуться на верх