0
votes

Django Updateview: ValueError: littéral invalide pour int () avec base 10: nom d'utilisateur

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 xxx pré>

et ceci est le modèle URL pour / updateprofile p> xxx

appelé à partir de la barre de navigation du site Web comme suit: p> xxx pré>

J'ai utilisé la classe de modelform dans formulaires.py comme suit: p> xxx pré>

et in vues.py La vue basée sur la classe UpdateView suivante est invoquée: p> xxx pré>

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'),
]


2 commentaires

3 Réponses :


0
votes

Ceci renvoie un objet afin que le problème se pose xxx

chnage ceci à xxx


0 commentaires

1
votes

Changer cette ligne dans HTML

<a href="{% url 'update_profile' request.user.id %}">UpdateProfile</a>


6 commentaires

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 / ', vues.updateprofileview.as_view (), nom = 'update_profile'),


Pouvez-vous poster le fichier URL complet?



0
votes

Essayez ceci xxx

dans le HTML, xxx

dans l'URL, xxx


5 commentaires

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 à user.pk ou requête.user.pk , 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