2009-10-03 7 views
0

J'ai en quelque sorte deux variables par exemple x et y. J'ai également fait un modèle avec 3 champs (longitude, latitude, nom) et l'ai activé dans la base de données mysql. J'ai besoin d'envoyer ces deux variables (x, y) au serveur django pour chercher s'il y a un objet avec longitude = x et latitude = y. S'il y en a un que je veux récupérer c'est son nom.Demande de données de la base de données en utilisant Django

Comment puis-je faire cela?

Répondre

0

Basiquement vous ne pouvez pas demander à db s'il y a un objet de longitude = x et latitude = y comme ceci:

url:

url(r'^get_name_by_xy/(?P<x>\d+)/(?P<y>\d+)/$', 'get_name_by_xy', name='get_name_by_xy'), 

Vue:

def get_name_by_xy(request, x, y): 
    import YourModel 
    try: 
     info = YourModel.objects.filter(longitude=x, latitude=y) 
     for i in info: 
      print i.name 
    except YourModel.DoesNotExist: 
     print 'No coincidences' 

là, vous obtiendra toutes les lignes avec les longitudes x et y et les latitudes s'il y en a 1 ou plus de 1 :)

0
try: 
    x = OurModel.objects.filter(longitude=x, latitude=y) 
    for cur in x: 
     print cur.name 
except OurModel.DoesNotExist: 
    print 'sorry, there is no record you are looking for :(' 

devrait fonctionner :)

Bien sûr, print montrera le nom dans la console.

+0

s'il y a plus d'une ligne avec x, y en db, Django soulèvera pour vous: MultipleObjectsReturned: get() retourné plus d'un OurModel – panchicore

+0

U ont raison, je pense qu'il pourrait y en avoir seulement un ... va corriger ma réponse. – IProblemFactory

Questions connexes