Присоединение 2 моделей в Джанго - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь объединить 2 таблицы в представлении django.В настоящее время у меня есть две модели

Объединение может быть выполнено на тикере и дате .Так как у обеих моделей они есть.

SSALiReport.objects.all()
NELiReport.objects.all()

NELI выглядит так

        {
            "clout": 40000,
            "date": "2018-05-15",
            "sentiment": 500,
            "ticker": "AAPL"
        },

SALI выглядит следующим образом

    {
        "date": "2018-05-15",
        "market": "NYSE",
        "prediction": 0.6,
        "price": 300,
        "ticker": "AAPL"
    },

Мне нужен третий вид, который выглядит следующим образом, назовем его FullReport

    {
        "date": "2018-05-15",
        "market": "NYSE",
        "prediction": 0.6,
        "price": 300,
        "ticker": "AAPL",
        "clout": 40000,
        "sentiment": 500

    },

Как мне это сделатьвид?Также обратите внимание, я хочу иметь возможность много строк по дате.Поэтому мне нужно объединить две таблицы

для справки, см. Модель

from django.contrib.postgres.fields import JSONField
from django.db import models
import datetime

# Create your models here.

class SSALiReport(models.Model):

    date = models.DateField()
    ticker = models.CharField(max_length=10,default='NA')
    market = models.CharField(max_length=250,default='NA')

    price = models.FloatField()
    prediction = models.FloatField()


    def __str__(self):
        return str(self.date) + " - " + str(self.ticker)


class NELiReport(models.Model):

    date = models.DateField()
    ticker = models.CharField(max_length=10,default='NA')
    sentiment = models.FloatField(default='0.0')
    clout = models.FloatField(default='0.0')
    top_news = JSONField(default='{}')


    def __str__(self):
        return str(self.date) + " - " + str(self.ticker)

, этот сценарий SQL работает

SELECT *
FROM api_neli_report, api_ssali_report
WHERE api_neli_report.ticker = api_ssali_report.ticker
AND api_neli_report.date =  api_ssali_report.date

что эквивалентно django?

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете просто выполнить необработанный запрос, если не хотите менять свои модели.См. Документацию: Выполнение необработанных SQL-запросов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...