Django: ValueError: Formularfeld kann nicht erstellt werden, da das zugehörige Modell noch nicht geladen wurde

Ich habe Probleme mit einem Django-Projekt, an dem ich arbeite. Ich habe jetzt zwei Anwendungen, die ein bisschen Überlappung erfordern. Ich habe wirklich erst das zweite Projekt gestartet (genanntworkflow) und ich versuche mein erstes Formular für diesen Antrag zu erstellen. Meine erste Bewerbung heißtpo. In demworkflow Anwendung habe ich eine Klasse genanntWorkflowObject, die (vorerst) nur ein einziges Attribut hat - einen Fremdschlüssel zu einemPurchaseOrder, die in definiert istpo/models.py. Ich habe diese Klasse mit importiertfrom po.models import PurchaseOrder.

Ich versuche, eine Seite zu haben, auf der ein Benutzer eine neue erstelltPurchaseOrder. Dies funktioniert gut (es ist die gleiche Form, die ich in meinem verwendet habePurchaseOrder Anwendung) und verwendet dann diese Instanz der Klasse, um eineWorkflowObject. Das Problem ist jetzt, dass ich den Fehler bekomme:ValueError: Cannot create form field for 'purchase' yet, because its related model 'PurchaseOrder' has not been loaded yet. Ich bin mir wirklich nicht sicher, wo ich damit anfangen soll. Es funktionierte einwandfrei (so dass ich ein neues erstellen konntePurchaseOrder und weiter zu einer URL mit ihrem Primärschlüssel in der URL, bis ich die Ansicht hinzugefügt habe, mit der ich eine neue erstellen kannWorkflowObject. Ich werde diese spezifische Ansicht hier setzen:

from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from django_tables2 import RequestConfig
from po.models import PurchaseOrderForm, PurchaseOrder
from workflow.models import POObject, WorkflowForm


def new2(request, number):
 po=PurcchaseOrder.objects.get(pk=number)
 if request.method == 'POST':
   form = WorkflowForm(request.POST)
   if form.is_valid():
      new_flow = form.save()
      return HttpResponse('Good')
   else:
      return render(request, 'new-workflow.html', {'form': form, 'purchase': po})
  else:
    form = WorkflowForm()
    return render(request, 'new-workflow.html', {'form': form, 'purchase': po})

Die Codezeilen, die den Fehler zu verursachen scheinen (oder zumindest eine der Zeilen, die im Traceback angezeigt werden), lauten:

class WorkflowForm(ModelForm):
   purchase = forms.ModelChoiceField(queryset = PurchaseOrder.objects.all())

EDIT: Ich habe anscheinend einen sehr kleinen Fehler gemacht und Klammern in meine Definition von eingeschlossenWorkflowObjectdas heißt, ich hatte gesagtpurchase=models.ForeignKey('PurchaseOrder'), anstattpurchase=models.ForeignKey(PurchaseOrder)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage