Подключите нашего Telegram-бота для уведомлений о новых проектах

Python Django написать код для выборки из базы данных

c
Заказчик
Отзывы фрилансеров: + 2 - 0
Зарегистрирован на сайте 7 лет и 9 месяцев
Бюджет: 1200 руб
12 $ — 11.35 €
Исполнитель определен: Роман Andlancer  
Есть 5 моделей:

#Оплата
class Payroll(models.Model):
    site_nick = models.CharField('Ник на сайте', max_length=30)
    site = models.PositiveIntegerField('ИД сайта')
    money = models.PositiveIntegerField('Денежные единицы')

#Привязка ников на сайте
class Mapping(models.Model):
    user=models.ForeignKey(
        Profile,
        related_name='user_mapping',
        on_delete=models.CASCADE,
    )
    site=models.ForeignKey(
        Site,
        related_name='site_mapping',
        on_delete=models.CASCADE,
    )
    site_nick=models.CharField('Ник на сайте', max_length=30)

#Города
class City(models.Model):
    city_name=models.CharField('Название города', max_length=30)

#Cайты
class Site(models.Model):
    site_name=models.CharField('Название сайта', max_length=20)
    #Здесь будет храниться формула расчета. Например *100/2. Это значит, что значение money из модели Payroll для этого сайта, нужно будет делить 100 и умножить на 2
    formula = models.CharField('Формула расчета', max_lenght=10)

#Профили
class Profile(AbstractUser):
    nickname=models.CharField('Ник', max_length=20,blank=True,null=True)
    city = models.ForeignKey(
        City,
        related_name='user_city',
        on_delete=models.PROTECT,
        null = True,
        blank=True,
    )

Задача: написать код для views.py и шаблона, который будет выводить таблицу с данными отфильтрованными по городу (id города будет указан в URL). Возможно, предложенный метод неправильный. Можно переделать логику (изменить код models.pay). 

Заголовок: Никнейм, Перечисление Site.site_name, Итого
Данные: Profile.nickname, Payroll.money(для каждого сайта по этому Profile, если данных нет – стоит 0*), сумма всех Payroll.money для каждого сайта с примененной Site.formula для данного Profile
Внизу поле с суммой по этому городу
---------
*Payroll.objects.get(site_nick=Mapping.objects.get(user=Profile.objects.get(pk=1), site=1).site_nick).money (код для выборки данных из Payroll без учета формулы, для понимания задачи)

В Mapping есть записи не для всех сайтов и не для всех пользователей
Разделы:
Опубликован:
17.12.2020 | 21:40 [последние изменения: 17.12.2020 | 23:31]

Теги: нужен программист, резюме программиста, требуется программист, резюме веб программиста

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».