9
votes

Méthode Obtenir ()

J'essaie de remplacer la méthode get () à mon avis comme: xxx

dans mon modèle est une méthode de remplacement comme: xxx

Deux questions ->
Où est-ce que je me trompe avec le remplacement?
Comment accéder à l'argument "Demande" est-il passé?


0 commentaires

3 Réponses :


10
votes

obtenez n'est pas une méthode sur le modèle - vous y accédez via Objets , c'est donc une méthode sur le gestionnaire. Voir le Documentation officielle du gestionnaire .

La façon dont vous avez défini la signature de la méthode, la demande est disponible en tant que args [0] .


3 commentaires

Alors, comment puis-je remplacer la méthode du gestionnaire?


En définissant une sous-classe Custom Manager avec une méthode Obtention de remplacement, comme indiqué dans cette documentation ...


Malheureusement, la documentation que vous vous référez à ne pas avoir d'exemple explicite d'un de méthode .



20
votes

Compte tenu de l'exemple de l'application de sondage dans le tutoriel de Django. Vous pouvez effectuer une opération obtenir code> pour obtenir un sondage Questions de la base de données.

In : Question.objects.get(pk=1)
hello world
Out: <Question: Question object>


0 commentaires

1
votes

Notez que les versions Django plus modernes (depuis 1.7), offrent un moyen plus facile de le faire. Découvrez la méthode as_manager () requête.

HTTPS: //docs.djangoproject.com/fr/2.2/topics/db/Managers/#Creatting-a-manager-with-queryset-methods


0 commentaires