Как использовать данные из postgresql в django?
Я перешел с sqlite
на postgresql
после Django: Каковы лучшие практики для миграции проекта с sqlite на PostgreSQL четвертый ответ.
Вот мои обновленные настройки:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'scraper',
'USER':'user',
'HOST':'localhost',
'PORT':5432,
}
}
Однако я не могу найти/захватить какие-либо данные из моей базы данных. Вот некоторые примеры данных из базы данных:
Я пытался
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>
Однако, поскольку он не захватывает ни одного из данных, я получаю следующее без каких-либо значений в раскрывающемся списке:
Попробуйте
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
я не могу найти вопрос, но я могу сказать:
дамп всех данных из 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
загрузите данные, если вы уже выполнили миграцию и правильно назвали имена приложений и моделей
../manage.py loaddata your_filename.json
Будьте внимательны: если дамп не работает для utf8, попробуйте изменить опцию --format
на xml. json по умолчанию.