Я использую Peewee как ОРМ в Python (в сочетании с PostgreSQL), и я пытаюсь запросить каждый потомок данного идентификатора из таблицы с самостоятельным реферированием (родитель-ребенок)Peewee получить все потомкам
Каков наилучший способ достичь этого?
Edit:
Я уже настроить PeeWee класс модели:
class Customer(BaseModel):
customerid = PrimaryKeyField()
name = CharField(null=False)
parentid = ForeignKeyField(db_column='parentid',
null=True,
rel_model='self', to_field='customerid')
customer_type_customertypeid = ForeignKeyField(
db_column='customer_type_customertypeid',
null=False,
rel_model=CustomerType, to_field='customertypeid')
class Meta:
db_table = 'customer'
Теперь я хочу, чтобы запросить каждый ребенок данного клиента по идентификатору и преобразовать его в Словарь
C1 = dbhandler.Customer.alias()
try:
return [model_to_dict(model) for model in
C1.select().where(...)]
except:
return {}
Но я не могу придумать запрос, который бы достиг этого без использования CTE. Но так как у peewee нет поддержки для CTE, у меня нет идей. Я видел, что peewee имеет функцию .raw (..), в которую вы можете поместить реальные sql-запросы, но это просто разрушит преимущество использования ORM.
Лучший способ - следовать их документации и «Как начать», а не просить нас закодировать это для вас. Я ни в коем случае не пытаюсь вас оскорбить, просто эти вещи появляются очень часто, когда пользователи ничего не пробовали или не могут показать нам, что они пробовали. Имея в виду, что у нас нет реального кода, который поможет вам, кроме кода, для всего решения для вас (что вы, возможно, не думаете, что нас спрашивают). Но это то, о чем вы нас спрашиваете). Пожалуйста, покажите нам несколько попыток решить эту проблему, [Минимальный рабочий пример] (http://stackoverflow.com/help/mcve). Добро пожаловать в SO! – Torxed
@Torxed Я добавил некоторый фактический код – TimoTJ
Гораздо лучше, закрыть отзыв втянуто. Это похоже на законный и хороший вопрос, когда кто-то с лучшим пониманием Peewee (похоже, является новой тенденцией) может помочь. Удачи! – Torxed