J'ai une application Django contenant un modèle de profil de base qui étend le modèle d'utilisateur à l'aide de l'onetoonefield et ceci est le modèle URL pour / updateprofile p> appelé à partir de la barre de navigation du site Web comme suit: p> J'ai utilisé la classe de modelform dans formulaires.py comme suit: p> et in vues.py La vue basée sur la classe UpdateView suivante est invoquée: p> mon fichier URLS.py contient le suivant Modèles: P> urlpatterns = [
path('', TemplateView.as_view(template_name='Login/home.html'), name='home'),
path('home/', TemplateView.as_view(template_name='Login/home.html'), name='home'),
path('updateProfile/<pk>', views.UpdateProfileView.as_view(), name='update_profile'),
]
3 Réponses :
Ceci renvoie un objet afin que le problème se pose chnage ceci à p>
Changer cette ligne dans HTML
<a href="{% url 'update_profile' request.user.id %}">UpdateProfile</a>
Ok j'ai essayé votre solution, il retourne la page 404 introuvable et l'URL est également incorrecte, c'est-à-dire 127.0.0.1 : 8000 / MySite / UpdateProfile / 5 sur le lieu de 127.0.0.1:8000/venter/ updateprofile / 1
Ouais ça va parce que, votre application a un nom d'app_ je suppose? Vous devez la mettre en face de l'URL dans le modèle. Si vous ne pouvez pas comprendre, affichez les URL principales et le fichier URL de l'application
Également si j'utilise profile.Object.get dans le lieu de profil.ObjectS.filter il jette une erreur: "Profil" modèle n'a pas d'attribut "filtre"
Montrez les URL d'autre comment je peux dire autrement ce qui ne va pas, et s'il vous donne une erreur, gardez le filtre
Ceci est le modèle URL: chemin ('updateprofile /
Pouvez-vous poster le fichier URL complet?
Essayez ceci dans le HTML, p> dans l'URL, p>
Il jette inverse pour 'update_profile' avec des arguments '(' ',) "non trouvé. Aussi, Remarque Dans Views.Py, le QuerySet () Contient: Renvoyer le profil.ObjectS.Filter (utilisateur = auto.Erquest.user)
Vous pouvez modifier profil.user.pk code> à
user.pk code> ou
requête.user.pk code>, cela dépend de l'endroit où votre lien HTML est dans votre modèle . Et vous n'utilisez pas QuerySet dans UpdateView. Donc, vous n'avez pas besoin d'ajouter QuerySet, à moins que vous ne récupériez beaucoup d'utilisateurs, c'est-à-dire. En ajoutant à cela, vous pouvez ajouter une fonction d'obtention et de poste à l'aide de UpdateView.
OK, essayé, jette une erreur Page 404, simplement parce que le lien URL est 127.0.0.1:8000/mysite/updateprofile/5 à 127.0.0.1:8000/mysite/updateProfile/1 ... Que fais-je à ce sujet?
Je n'ai pas compris? Est-il 404 page lorsque vous modifiez le PK de 5 à 1 manuellement dans votre URL et que cet utilisateur n'existe pas?
Lorsque PK est 5, je rencontre 404, mais lorsque je le modifiais manuellement à ID = 1 dans l'URL, le modèle est rendu avec succès
Vous utilisez UpdateView, pourquoi vous avez besoin de questions? Vous pouvez supprimer cela. Et modifiez également votre lien vers
code>
J'ai essayé votre solution, l'erreur de page 404 se produit. Cependant, je peux accéder à mon modèle en modifiant l'URL à partir du 127.0.0.1:8000/mysite/updateProfile/5 à 127.0.0.1:8000/mysite/updateProfile/1