J'ai des problèmes avec un projet Django que je travaille. J'ai maintenant deux applications, qui nécessitent un peu de chevauchement juste. J'ai vraiment seulement commencé le deuxième projet (appelé Ce que j'essaie de faire est d'avoir une page dans laquelle un utilisateur crée un nouveau code> code>. Cela fonctionne bien (c'est la même forme que j'ai utilisée dans mon code> Application code>), puis utilise cette instance de la classe pour créer un Les lignes de code qui semblent causer l'erreur (ou au moins une des lignes montrées dans la trace ) est: p> éditer:
Il me semble avoir fait une erreur très noob et inclus des parenthèses dans ma définition de workflow code>) et j'essaie de faire mon premier formulaire pour cette application. Ma première application est appelée
po code>. Dans l'application Code> Workflow Code> J'ai une classe appelée
WorkflowObject code>, qui (pour l'instant) n'a qu'un seul attribut - une clé étrangère à un code> code> , qui est défini dans
po / modèles.py code>. J'ai importé cette classe avec
de Po.models Importerasororder code>.
WorkflowObject code>. Le problème maintenant, c'est que je reçois l'erreur suivante:
ValueError: impossible de créer un champ de formulaire pour «achat», car son modèle associé 'PASCHERODER' n'a pas encore été chargé code>. Je ne sais vraiment pas où commencer avec ça. Cela fonctionnait bien (me permettant de créer un nouveau commandant
code> et de transmettre à une URL avec sa clé principale de l'URL) jusqu'à ce que j'ai ajouté la vue qui devrait me permettre de créer un nouveau
WorkflowObject < / code>. Je vais mettre cette vue spécifique ici: p>
WorkflowObject code>, c'est-à-dire que j'avais dit
achat = modèles.forignkey ('"Panchiste") code>, Au lieu de
Achat = Modèles.ForignKey (Publier) CODE> P> P>
3 Réponses :
Premièrement, vous pouvez essayer de réduire le code à:
def new2(request, number): po=PurcchaseOrder.objects.get(pk=number) form = WorkflowForm(request.POST or None) if form.is_valid(): new_flow = form.save() return HttpResponse('Good') else: return render(request, 'new-workflow.html', {'form': form, 'purchase': po})
semble qu'il n'y a rien de spécial dans votre flux de travail, vous pouvez donc la définir comme suit:
class WorkflowForm(ModelForm): class Meta: model = WorkflowObject
J'ai eu un problème similaire et j'ai pu résoudre ce problème en déclarant toutes mes classes ModeFormormes sous tous mes modèles de classe dans mon fichier Modèles.py. De cette façon, les classes de modèle ont été chargées avant les classes Modelform. P>
Vous devriez essayer de charger l'application de commande avant l'application Workflowform dans vos paramètres. Cela pourrait fonctionner.