2016-11-01 2 views
0

Ich versuche django-shop mit einer einfachen django Installation zu integrieren, aber es gibt mir folgende Fehlermeldung:
Fremdschlüssel Latente ‚OrderPayment.order‘ wurde nicht abgebildet

django.core.exceptions.ImproperlyConfigured: Deferred foreign key 'OrderPayment.order' has not been mapped 


ich sogar versucht, Erstellen des OrderPayment-Modells, wie in der folgenden Dokumentation beschrieben, aber ich habe immer noch kein Glück.

Antwort

1

Entweder müssen Sie zuerst Ihre materialisierten Modelle implementieren oder die Standardmodelle in Ihre Shop-Implementierung importieren. Siehe diesen Link: http://django-shop.readthedocs.io/en/latest/reference/deferred-models.html

Bearbeiten: Die Standardmodelle befinden sich im Verzeichnis shop/models/defaults. Sie können sie entweder in Ihre Shop-Implementierung importieren oder kopieren und an Ihre Projektanforderungen anpassen.

Shop/models/defaults/__ init__.py sagt:

Die Modelle im Verzeichnis Standard haben als reine Bequemlichkeit und zu Demonstrationszwecken aufgenommen worden. Wenn eine geänderte Version benötigt wird, kopieren Sie eines dieser Modelle in das Projektmodell Verzeichnis und übernehmen Sie es nach Ihren Bedürfnissen. Ansonsten importieren Sie einfach das Modell in Ihre eigene models.py-Datei, ohne es zu verwenden. Letzteres ist wichtig , um das Modell zu materialisieren.

Jedes Modell wird in einer eigenen Datei deklariert. Dies verhindert, dass Modell Validierungsfehler in verwandten Feldern auftreten, wenn eine Datei mit dieser -Definition importiert wird, ohne das Modell zu verwenden.

+0

Es wäre hilfreich, wenn Sie ein wenig Code geben könnten, um die korrekte Verwendung und die falsche Verwendung zu demonstrieren, auch wenn es alles in dem Link ist. Links können fragil sein. – daphtdazz

+0

Ich habe meine Antwort bearbeitet. Kein Codebeispiel ist erforderlich. Aber du hast recht mit dem Ablauf der Links. – gtolivier