0
class Conversation(models.Model):
    contact             = models.ForeignKey(Contact)
    conversation_datetime = models.DateTimeField()    
    notes               = models.TextField(_(u'Notes'),        blank=True)    

    def __unicode__(self):
        return self.conversation_datetime


class Conversation_history(Conversation):
    log_date_time = CreationDateTimeField()
    def __unicode__(self):
        return self.conversation_datetime

これが最善かどうかはわかりませんが、各主要モードの履歴表を作成して、顧客が行っていたことを追跡し、サポート ケースで支援できるようにしたいと考えていました。

元のモデルをベースに新しいモデルを作成しました。しかし、新しいモデルのインスタンスを保存すると、元のテーブルに値が入力されます。理由がわかりません。

call = Conversation(contact='', conversation_datetime = '', notes='')
call.save()

ch = Conversation_history(contact='', conversation_datetime = '', notes='')
ch.save()
4

1 に答える 1

1

Conversation モデルが抽象的であると宣言していないためです。マルチテーブル継承を使用しています。ドキュメントをご覧ください。

すべてのデータを子供に保存したい場合は、次のようにする必要があります-

class ConversationBase(models.Model):
    contact             = models.ForeignKey(Contact)
    conversation_datetime = models.DateTimeField()    
    notes               = models.TextField(_(u'Notes'),        blank=True)  

    class Meta:
        absract = True

class Conversation(ConversationBase):
    pass

class ConversationHistory(ConversationBase):
    log_date_time = CreationDateTimeField()
于 2013-02-24T18:23:58.360 に答える