2017-12-14 3 views
0

Ich arbeite an einem Projekt mit veekuns pokedex sqlite-Datenbank und verwende es in einem Django-Projekt.Django-Modelle für nicht vom Benutzer erstellte Tabellen

Sie haben viele Tabellen einschließlich Begegnungsraten, Pokemons, Typen, etc. Die meisten von diesen muss der Benutzer nicht interagieren (muss wirklich nur aus der Datenbank lesen, nicht erstellen, aktualisieren oder löschen).

Lohnt es sich, Modelle basierend auf der Datenbank manuell oder über inspectdb zu erstellen? Werde ich einen Leistungsschub sehen?

Ich bin neu in Django, so kann ich hier den Zweck der Modelle missverstehen.

Antwort

0

Ich kann nützlich sein, um die Vorteile des Django ORM wie QuerySets zu erhalten und in der Lage sein, die Admin-Schnittstelle bei Bedarf zu haben. Ich musste dies nur einmal tun und fand es in Ordnung nach https://docs.djangoproject.com/en/1.11/howto/legacy-databases/

Sie können Leistungssteigerungen beobachten oder nicht, abhängig davon, wie Sie die Abfragen manuell erstellen würden.

Es sollte beachtet werden, dass Django cross database migrations nicht unterstützt, wenn Sie die Modelle in Beziehung setzen wollten. Wenn Sie das brauchen, müsste es manuell gemacht werden.

+0

Ich wollte es mit der Standard-Django-Datenbank integrieren. Ist das nicht ratsam/nicht möglich? –

+0

Es ist möglich, aber Sie können keinen 'ForeignKey' verwenden. Sie können den 'pk' des Datensatzes aus der Pokedex-Datenbank in ein geeignetes Feld in Ihrer von Django verwalteten Datenbank speichern. Sie benötigen dann zwei Abfragen, um zu erhalten, wonach Sie suchen, z. Wenn Sie nach allen verwandten Pokemon mit dem Namen mit 'a' ignorieren Fall 'DjangoModel.objects.filter (pk_pokedex__in = PokedexModel.Objects.Filter (pokeman_name__icontains =' a ')) ' –

+0

Oh, diese Datenbank hat eine Menge von ForeignKey es Vielleicht ist es am besten, es dann in Ruhe zu lassen oder es manuell neu zu erstellen. –

Verwandte Themen