如何从另一个模型调用一个字段? [英] How to call one field from another model?

查看:127
本文介绍了如何从另一个模型调用一个字段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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 = model.DateField(blank = False,unique = True)
sit_date = models.ForeignKey(Sitting,
on_delete = models.CASCADE)

to

  class Sitting(models.Model):

ballot_date = models.DateField(null = True,blank = True)
cut_off_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 self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self ).save(* args,** kwargs)


解决方案

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

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

注意:


  1. 您将不会在模型中实际存储该值你不会 save()


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



I want to call a field from another model. I am doing by

def get_shift_date(self):

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

from

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

to

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)

But it didn't work. Could some one help me to correctly call shift date in the get_shift_date method?

Edit: Save method:

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

解决方案

You need to remove the self., d is the object that is currently being iterated over.

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

Note:

  1. You won't actually be storing the value in the models since you don't save() it

  2. Your return won't work since its outside the loop and even then it will only return the first.

这篇关于如何从另一个模型调用一个字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆