Я разрабатываю модель в Django, но я не знаю, является ли это лучшим способом. У меня есть модель под названием "История", и внутри этой модели у меня есть специализированная функция, которая будет обрабатывать вставки этой модели.
Альтернатива 1
class History(models.Model):
field1 = models.ForeignKey(Request)
field2 = models.BooleanField()
field3 = models.DateTimeField()
def __unicode__(self):
return str(self.field1.id)
class Meta: #
ordering = ['-field3']
def insert_history(self):
# Here I will have some business logic to insert the data to the history model
Чтобы вставить данные в модель Истории, мне все равно придется использовать функцию insert_history.
Мои вопросы здесь:
Правильный код выше?
Если да, как я могу вызвать "insert_history" из представления?
Альтернатива 2
У меня есть еще одна альтернатива, которую я тестировал, и она работает, но не кажется правильным. Код выглядит следующим образом:
class History(models.Model):
field1 = models.ForeignKey(Request)
field2 = models.BooleanField()
field3 = models.DateTimeField()
def __unicode__(self):
return str(self.field1.id)
class Meta: #
ordering = ['-field3']
def insert_history(field1, field2, field3):
# Here I will have some business logic to insert the data to the history model
И я вызываю это из вида следующим образом:
from app.models import insert_history
insert_history('1', True, 'some_date')
Каков правильный способ сделать это? Если альтернатива 1 правильная, как я могу вызвать "insert_history" из представления?
С наилучшими пожеланиями,