如何从另一个模型调用一个字段?

时间:2016-08-16 09:00:25

标签: django

我想从另一个模型中调用一个字段。我在做什么

def get_shift_date(self):

for d in Shiftdate.objects.select_related('sit_date'):
   d.shift_date=self.sit_date
   return d.shift_date

来自

class Shiftdate(models.Model):
    shift_date = models.DateField(blank=False,unique=True)
    sit_date = models.ForeignKey(Sitting,
                                on_delete=models.CASCADE)

class Sitting(models.Model):
    sit_date = models.DateField(blank=False,unique=True)
    cut_off_date = models.DateField(null=True, blank=True)
    ballot_date = models.DateField(null=True, blank=True)
    sess_no = models.ForeignKey(Session,
                                 on_delete=models.CASCADE)
    genre = TreeForeignKey('Genre', null=True, blank=True, db_index=True)

但它没有用。有人可以帮我在get_shift_date方法中正确调用shift日期吗?

编辑: 保存方法:

def save(self, *args, **kwargs): 
           self.sit_date = self.get_shift_date(‌​) 
           super(Sitting, self).save(*args, **kwargs)

1 个答案:

答案 0 :(得分:1)

您需要删除self.,d是当前正在迭代的对象。

for d in Shiftdate.objects.select_related('sit_date'):
    d.shift_date=self.sit_date

注意:

  1. 您实际上不会将值存储在模型中,因为您没有save()

  2. 你的回报不会有效,因为它在循环之外,即使那样它也只会返回第一个。