python - How to get only one image from Set() in Pony ORM -


entities:

class car(db.entity):     image = set("image")     name = required(str, 40,)  class image(db.entity):     name = required(str, unique=true)     car = required(car) 

and want information on cars-list page: 1 car - 1 image of car.

i use:

cars = select((car, car.image) car in car).distinct().show() 

i have

car[1]|image[1]   car[1]|image[2]   ... car[5]image[1] car[5]image[2] ... 

but need first image of each car, not images.

how this?

thanks!

code first image each car (image lowest id):

#!/usr/bin/env python pony.orm import *  db = database() db.bind('sqlite', ':memory:', create_db=true)   class car(db.entity):     image = set("image", lazy=true)     name = required(str, 40)  class image(db.entity):     name = required(str, unique=true)     car = required(car)      db.generate_mapping(create_tables=true)  sql_debug(true)  db_session:     car1 = car(name='car1')     car2 = car(name='car2')     image1 = image(name='image1', car = car1)     image2 = image(name='image2', car = car1)     image3 = image(name='image3', car = car2)     cars = select((car, car.name, image, image.name) car in car image in car.image if image.id == min(car.image.id)).show() 

result:

get connection local pool switch autocommit mode begin immediate transaction insert "car" ("name") values (?) [u'car1']  insert "car" ("name") values (?) [u'car2']  insert "image" ("name", "car") values (?, ?) [u'image1', 1]  insert "image" ("name", "car") values (?, ?) [u'image2', 1]  insert "image" ("name", "car") values (?, ?) [u'image3', 2]  select "car"."id", "car"."name", "image"."id", "image"."name" "car" "car"   left join "image" "image-1"     on "car"."id" = "image-1"."car"   left join "image" "image"     on "car"."id" = "image"."car" group "car"."id", "car"."name", "image"."id", "image"."name" having "image"."id" = min("image-1"."id")  car   |car.name|image   |image.name ------+--------+--------+---------- car[1]|car1    |image[1]|image1     car[2]|car2    |image[3]|image3     commit release connection 

by way, generated sql rather strange, don't think executing 2 identical left joins makes sense. edit: ok, makes sense (see comments).


Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -