Уведомления

Группа в Telegram: @pythonsu

#1 Март 3, 2020 01:07:40

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

Простой вопрос, не знаю как правильно спросить

у меня есть две таблицы Clients и Orders
как мне написать одну функцию на обе таблицы
функция должна принимать в качестве аргументов
1. результаты выборки (с этим проблем нет)
2. два поля, с которыми будет работать функция. Эти поля разные для разных таблиц.

 clients = Clients.objects.all()
results1 = somefunction(clients, ".id", ".name")
orders = Orders.objects.all()
results2 = somefunction(orders, ".id", ".date")
def somefunction(a, b, c):
....

так, в первом случае функция должна работать с величинами
a.id, a.name

а втором случае с величинами
a.id, a.date

как внутри функции трансформировать параметры в первом случае a.id, a.name
а во втором случае в a.id, a.date
как это называется ?
спасибо

Отредактировано gtlhbkkj (Март 3, 2020 01:12:46)

Офлайн

#2 Март 3, 2020 06:29:00

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Простой вопрос, не знаю как правильно спросить

gtlhbkkj
а втором случае с величинами
a.id, a.date
Непонятно что у вас за объект но формально для такой записи используют -
 res=getattr(a,"date")

p.s.
Но вообще любопытно что такого нетривиального можно одинаково делать с именем и датой. Что вы там делаете?



Отредактировано doza_and (Март 3, 2020 06:33:28)

Офлайн

#3 Март 3, 2020 23:00:13

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

Простой вопрос, не знаю как правильно спросить

doza_and
p.s.
Но вообще любопытно что такого нетривиального можно одинаково делать с именем и датой. Что вы там делаете?
благодарю вас за развернутый ответ и за ваши сомнения. Если бы вы коротко ответили, написав только решение, я бы его взял и дальше бы использовал бы свою говнофункцию из 5-7 строк.
Ваш дополнительный вопрос слегка направил меня на дальнейшие поиски и позволил найти решение.

Последний раз я что-то кодировал в 1995 году под ДОСом. Поэтому в современном коде даже порой не знаю какую функциональность ищу, как она называется, по каким кодовым словам искать ее в интернете. Частенько приходится искать то не знаю что. Но в основном при определенном упорстве оно находится.



в результате потуг я родил выделенную красным строку.
До этого говнорешение было - закоментированные выше две строки и функция в другом файле.
нужно было из разных таблиц выбрать по два поля - id и второе поле для того чтобы его засунуть в ChoiceField в форме и вывести в виде выпадающего меню



Благодарю вас !

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version