Сейчас я учусь использовать django и python, и у меня есть небольшое задание, как показано ниже:
Я регулярно веду учет своих ежемесячных инвестиционных данных и создаю модель django, как показано ниже:
class money_tx(models.Model):
tx_date = models.DateField()
investment_plan = models.ForeignKey(investment_plan)
tx_type_choice = (
("deposit","deposit"),
("withdrawal","withdrawal"),
)
tx_type = models.CharField(max_length=20, choices=tx_type_choice)
tx_amt = models.DecimalField(max_digits=16,decimal_places=6)
class Meta:
ordering = ["-tx_date"]
Я пытаюсь создать представление в django, которое сообщит мне, какая информация о покупке фонда за определенный месяц еще не введена, вывод должен выглядеть примерно так:
DATE PLAN_A PLAN_B PLAN_C
2010-01 PRESENT MISSING PRESENT
2010-02 PRESENT MISSING PRESENT
2010-03 PRESENT MISSING MISSING
Будучи обычным пользователем R, я думаю о вышеприведенном выводе как о dataframe
, поэтому мне нужно создать набор данных, подобный приведенному ниже, прежде чем я смогу получить свой вывод:
INV_PLAN DATE STATUS
PLAN_A 2010-01 PRESENT
PLAN_A 2010-02 PRESENT
PLAN_A 2010-03 PRESENT
PLAN_B 2010-01 MISSING
PLAN_B 2010-02 MISSING
PLAN_B 2010-03 MISSING
PLAN_C 2010-01 PRESENT
PLAN_C 2010-02 PRESENT
PLAN_C 2010-03 MISSING
Я планирую создать объект словаря (что-то вроде temp = {'test':[1,2,3],'temp':['a','b','c']}
) и использовать for loop
для создания статуса.
Я без проблем создаю поле date
в объекте словаря, но как мне извлечь уникальный PLAN_NAME
из моей модели?
Я не знаю, в порядке ли мой способ «мышления с точки зрения R», когда я пытаюсь написать скрипт на Python. Пожалуйста, прокомментируйте, или я должен сделать это, используя MySQL? И извините за анти-пифоническое именование моих объектов. Спасибо.
Обновление 01
Спасибо за ответ DrTyrsa, это почти нормально, вот дополнительная информация:
class investment_organization(models.Model):
organization_abbre = models.CharField(max_length=20)
organization_name = models.CharField(max_length=200)
def __unicode__(self):
return self.organization_abbre
class investment_plan(models.Model):
organization = models.ForeignKey(investment_organization)
plan_code = models.CharField(max_length=20)
class Meta:
ordering = ["organization", "plan_code"]
def __unicode__(self):
return u'%s - %s' % (self.organization, self.plan_code)
Мой инвестиционный план состоит из двух частей информации, одна из которых - название компании, которое хранится в другой модели, как я могу включить его в свой конечный результат, как показано ниже:
ORG INV_PLAN DATE STATUS
ORG_A PLAN_A 2010-01 PRESENT
ORG_A PLAN_A 2010-02 PRESENT
ORG_A PLAN_A 2010-03 PRESENT
ORG_A PLAN_B 2010-01 MISSING
ORG_A PLAN_B 2010-02 MISSING
ORG_A PLAN_B 2010-03 MISSING
ORG_B PLAN_C 2010-01 PRESENT
ORG_B PLAN_C 2010-02 PRESENT
ORG_B PLAN_C 2010-03 MISSING
Еще раз спасибо.