У меня уже есть база данных с именем «mydb», где у меня есть таблица под названием «AERODROME».Имена таблиц базы данных с Django
Мой models.py выглядит следующим образом:
from django.db import models
class Aerodrome(models.Model):
Name = models.CharField(max_length=48)
Latitude = models.DecimalField(decimal_places=4, max_digits=7)
Longitude = models.DecimalField(decimal_places=4, max_digits=7)
И у меня есть этот метод в views.py:
from django.shortcuts import render
from helloworld.models import Aerodrome
def aerodromes(request):
return render(request, 'aerodromes.html', {'aerodromes': Aerodrome.objects.all()})
В моей папке шаблонов, у меня есть aerodromes.html, что вполне простой тоже:
<!doctype html>
<html>
<head>
</head>
<body>
<table>
{% for aerodrome in aerodromes %}
<tr>
<td>{{ aerodrome.Name }}</td>
<td>{{ aerodrome.Longitude }}</td>
<td>{{ aerodrome.Latitude }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
Когда я проверяю через свой браузер, я получаю сообщение об ошибке, потому что похоже, что он обращается к таблицу с неправильным именем. Мое приложение называется «helloworld», так как это тест, и вместо доступа к mydb.AERODROMES он обращается к mydb.helloworld_aerodrome (Также обратите внимание на проблему, чувствительную к регистру).
Поскольку у меня уже была база данных, я не запускал syncdb (я понял, что это не обязательно, но, возможно, это проблема).
Итак, проблема в том, что я не знаю, почему она добавляет «helloworld_» к имени таблицы, а также что я до сих пор не знаю точно, где именно я фиксирую имя таблицы (и оттуда возникает чувствительная к делу проблема, имеющая «аэродром», а не «AERODROMES»).
Любая помощь здесь?
Отлично, спасибо! :) –
Управляется ли это только тем, что таблица была заполнена внешним, или это также означает, что невозможно записать в эту таблицу из приложения? –
Вызов 'Aerodrome.save()' будет работать, как ожидалось, если таблица базы данных фактически дживется с определением модели (например, имеет правильную схему, соответствующую вашим «Name», «Latitude» и «Longitude'). Из [документации] (https://docs.djangoproject.com/en/dev/ref/models/options/#managed): _ «Если False, операции создания или удаления таблицы базы данных не будут выполняться для эта модель ... Это единственное отличие при управлении = False. Все остальные аспекты обработки модели в точности такие же, как и обычные ». _ – pztrick