2015-01-09 2 views
0

그래서 일부 객체의 트랜잭션과 업데이트를 기록하는 두 모델 TransactionUpdate이 있습니다. 그런 다음 테이블 Timeline을 갖고 싶습니다. 기본적으로 transaction 또는 updatetime_updated 중 하나의 값을 pk으로 기록합니다. 그래서, 내가 달성하고자하는 것은 간단 같은 Timeline 테이블모델 클래스의 값을 취하는 Django 필드

class Timeline 
    model = <taking value of type of model: Transaction or Update, etc.> 
    identifing_num = models.CharField(...) 
    time_updated = models.DatetimeField(...) 

상상 단지 다른 모든 실제로-의미있는 기록의 시간 - 주문 기록을 유지 할 수 있습니다. 물론 두 모델 (TransactionUpdate)을 쿼리하고 mergesort을 수행하고 queryset이라는 시간이 표시됩니다. 다만이 Timeline 일을 적어 둘 수 있다면 궁금 할 것입니다.

답변

0

GenericForeignKey을 사용할 수 있습니다.

TransactionUpdatenull=True 두 개의 ForeignKeys를 추가하십시오. 콘크리트 모델은 부동산을 통해 액세스 할 수 있습니다.

class TimeLine(models.Model): 

    transaction = models.ForeignKey(Transaction, null=True) 
    update = models.ForeignKey(Update, null=True) 
    identifing_num = models.CharField(...) 
    time_updated = models.DatetimeField(...) 

    @property 
    def model(self): 
     return self.transaction or self.update