Les méthodes de jointure interne de Django renvoient des résultats inattendus

le côté obscur

Je suis nouveau dans l'ORM de Django et je suis confus par les conventions de jointure interne malgré avoir consulté la documentation et d' autres réponses sur SO. J'ai deux tables - MyPointset MyBuffersqui sont liées par projectid(aucun doublon dans l'une ou l'autre table). Mon objectif est de récupérer le radiuschamp en utilisant la jointure interne sur projectid. Même si j'ai défini une clé étrangère, ma première tentative d'extraction de tous les champs de MyBuffersne renvoie rien de la table jointe, et ma deuxième tentative d'extraction d'un champ à partir d' MyBufferserreurs. Quel est le problème avec la syntaxe ou la méthodologie ici ? Les colonnes clés doivent-elles être nommées différemment ? Tout avis serait grandement apprécié!

modèles.py

from django.contrib.gis.db import models

class MyBuffers(models.Model):
    id = models.BigAutoField(primary_key=True)
    projectid = models.CharField(max_length=25, unique=True)
    radius = models.IntegerField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'my_buffers'

class MyPoints(models.Model):
    id = models.BigAutoField(primary_key=True)
    projectid = models.ForeignKey('MyBuffers', max_length=25, on_delete=models.DO_NOTHING, to_field='projectid', db_column='projectid')
    geog = models.PointField(geography=True, srid=4326) 

    class Meta:
        managed = False
        db_table = 'my_points'

vues.py

from .models import MyPoints
from .models import MyBuffers

1.Ne renvoie aucun champ de la MyBufferstable jointe

test = MyPoints.objects.select_related('projectid')
test.first().__dict__

{'_state': <django.db.models.base.ModelState object at 0x7f3e21786520>, 'id': 5808, 'projectid_id': 'foobar1', 'geog': <Point object at 0x7f3e21738910>}

2.Lance une erreur

test= MyPoints.objects.select_related('projectid__radius')
test.first().__dict__
django.core.exceptions.FieldError: Non-relational field given in select_related: 'radius'. Choices are: (none)
Ashin Shakya

Je pense que select related ne fonctionne que dans les clés étrangères. Donc, si vous essayez d'obtenir des champs autres que des clés étrangères, une erreur s'affichera. Votre ensemble de requêtes doit être

test= MyPoints.objects.select_related('projectid')
# To get radius
test.first().projectid.radius

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Afficher les résultats de jointure interne

Ordonner les résultats de la jointure interne

Application de méthodes statistiques sur des tableaux numpy: résultats inattendus

les résultats confirm() renvoient des résultats différents de console.log()

Jointure interne de deux tables avec des résultats de date

Les changements de taille de police de textArea donnent des résultats inattendus

Les tests renvoient des résultats incohérents avec les méthodes statiques

Afficher les résultats de la jointure interne avec php et sql

Jointure interne de trois tables à partir des résultats d'une autre requête

Exclusion des résultats de requête MYSQL avec une jointure interne

Pourquoi les méthodes RealmCollectionType renvoient des résultats et non RealmCollectionType / AnyRealmCollection?

Les méthodes qui renvoient des références const ou des références peuvent-elles provoquer des fuites de mémoire?

Quelle est la bonne façon de tester les méthodes qui renvoient des observables http?

Les méthodes renvoient une valeur nulle avant l'exécution des rappels de mise à niveau

Les classes Python renvoient-elles des méthodes de valeur ?

Les formats de chaîne paramétrés donnent des résultats inattendus

$ - [0] de perl produit des résultats inattendus pour les données non ASCII

Liaison interne des méthodes de classe

SQLite : jointure interne sur l'ensemble de résultats

la vitesse d'exécution de la fonction de permutation à l'aide de différentes méthodes entraîne des résultats inattendus

Les résultats de la saisie semi-automatique renvoient un emplacement avec des attributs nuls

Les littéraux de modèle ECMAScript renvoient des résultats différents

Résultats inattendus de jquery

Résultats de convolution inattendus

Résultats inattendus de SGEMM

Les méthodes de sauvegarde JPARepository renvoient null ?

Ajout de dates en javascript avec des résultats inattendus

Capture de regex Javascript donnant des résultats inattendus

La soustraction de tableaux numpy produit des résultats inattendus

TOP liste

  1. 1

    Filtrer le dataframe basé sur plusieurs colonnes d'un autre dataframe

  2. 2

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  3. 3

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  4. 4

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  5. 5

    Microsoft.WebApplication.targets

  6. 6

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  7. 7

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  8. 8

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  9. 9

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  10. 10

    comment afficher un bouton au-dessus d'un autre élément ?

  11. 11

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  12. 12

    Filtrer les données en fonction des conditions d'une trame de données

  13. 13

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  14. 14

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  15. 15

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  16. 16

    Pourquoi Phantomjs ne fonctionne pas avec ce site ?

  17. 17

    Stop jQuery execution after one time execution

  18. 18

    Concaténer des variables dans ansible

  19. 19

    Comment calculer la probabilité du graphique de densité?

  20. 20

    php ajouter et fusionner des données de deux tables

  21. 21

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

chaudétiquette

Archive