0
votes

Obtenir une erreur: obtenez () retourné plus d'un objet (à l'aide de get_Object_or_404)

Je suis d'obtenir une erreur get () renvoyé plus d'un sous-titres.

formes.py xxx

update_subtitle_name.html

< code> {% csrf_token%} {{form.as_p}}

MultipleObjectsReavorated to / update_subtitle_name_create / get () retourné plus d'un sous-titre_name - il est renvoyé 62!


1 commentaires

Vous devez passer une certaine valeur pour rechercher, comme get_object_or_404 (sous-titre_name, champ = quelque_value) pour obtenir l'objet.


3 Réponses :


0
votes

Il devrait être comme xxx


2 commentaires

Comment puis-je le rendre dynamique à formulaires.py


Publiez-vous pk du formulaire HTML



0
votes

get_object_or_404 appelle interne le querySet qui est Tout () requête, donc si vous passez le subtiter_name Il s'attend à des critères de filtrage comme des arguments de mots-clés comme Ce QuerySet.get (* args, ** kwargs) Si vous ne passez aucun argument de mot-clé ne renvoie pas toutes les instances de SubtiTle_Name . Et obtenir la méthode augmentera toujours l'erreur si plusieurs objets sont appariés avec les critères de filtrage. Il est capable de ne renvoyer qu'un seul objet. Si vous souhaitez charger davantage d'un objet dans des critères, vous devez appeler filtre () sur QuerySet.


0 commentaires

0
votes

Il y a plusieurs problèmes avec votre code. Permet de les réparer un par un:

Tout d'abord, vous devez passer quel subtiter_name vous souhaitez mettre à jour. Vous pouvez envoyer cette valeur à afficher par URL , par exemple: xxx

maintenant, vous devez capturer la valeur de pk de l'URL à voir: xxx

Enfin, vous n'avez pas besoin d'utiliser def update_subtitle (auto, * args, ** kwargs): méthode. Lorsque vous passez instance argument de mots-clés avec l'initialisation du formulaire, le formulaire met ensuite à jour cet objet uniquement.


0 commentaires