J'ai modifié les propriétés de question_text et enregistré
Ensuite, ajoutez la méthode __str__() et interrogez à nouveau toutes les questions,
Mon code ci-dessus est implémenté selon ceci
http://www.yiibai.com/django/... Je viens de l'apprendre, et mes étapes sont les mêmes que ce tutoriel, c'est-à-dire après avoir ajouté la méthode __str__() , l'affichage correct du tutoriel est le suivant :
Mais je l'ai testé moi-même et j'ai entré la commande, mais je n'ai pas pu voir les enregistrements après l'avoir modifié. Par exemple, j'ai modifié
q.question_text = "What's up?"
q.save()
Après avoir enregistré les modifications, exécutez la commande suivante
Question.objects.all()
Le résultat est le suivant :
Quelle est la raison de cela - Django1.9, la base de données est sqlite3 par défaut
def __str__ Cela devrait être la méthode de classe du modèle Question. Cette méthode détermine le retour lorsque vous interrogez. Vous définissez return self.question_text, donc lorsque vous interrogez l'objet, il renverra l'attribut question_text de l'objet, mais votre écriture. Le format est incorrect. Si cette méthode est définie en dehors de la classe, elle devient une fonction unique et n'a rien à voir avec la classe. Lorsque vous interrogez, un objet Question sera renvoyé par défaut.
Merci à tianren124 pour la réponse, le problème a été résolu.
Vous devez d'abord modifier models.py :
models.py
Après avoir modifié le code model.py ci-dessus, enregistrez-le, ouvrez cmd et saisissez-le à nouveau
Entrez simultanément
Vous pouvez voir que, contrairement aux résultats de la question précédente, lorsque Question.objects.all() est entré, le résultat en cours d'exécution est la valeur après avoir modifié q.question_tex "Quoi de neuf ?
Solution :
1. Modifier les modèles. py
doit être placé dans
Mettez également
Devant moi, je ne comprends pas très bien pourquoi.
2. Faites attention à l'indentation :
L'expression n'est peut-être pas très claire, veuillez me corriger