【问题标题】:How to call one field from another model?如何从另一个模型调用一个字段?
【发布时间】:2016-08-16 09:00:24
【问题描述】:

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

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 方法中正确调用班次日期吗?

编辑: 保存方法:

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

【问题讨论】:

标签: django


【解决方案1】:

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

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

注意:

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

  2. 你的 return 不起作用,因为它在循环之外,即使这样它也只会返回第一个。

【讨论】:

  • 这是我的保存方法: def save(self, *args, **kwargs): self.sit_date = self.get_shift_date() super(Sitting, self).save(*args, ** kwargs) 我怎样才能返回所有值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 2021-04-30
  • 2023-02-24
  • 1970-01-01
相关资源
最近更新 更多