- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为 Python 和 Django 的新手,我遇到了一个我认为很简单但又不想消失的问题。我有一个“表”,其中包含从
class TjgFaktor(models.Model):
typ = models.CharField(max_length=2)
factor = models.FloatField()
接下来我有另一个外键类:
class Moment(models.Model):
typ = models.ForeignKey(TjgFaktor,on_delete=models.SET_NULL,null=True)
现在,我想要做的是从第一类中获取因子作为 Moment 的属性。我试过了
def factor(self):
return TjgFaktor.objects.get(typ=self).factor
希望得到正确的因子。然而,当我做类似的事情时
person_moment = Moment.objects.all()
for e in person_moment:
print(e.factor())
我得到的是“TjgFaktor 匹配查询不存在”。
那么我应该怎么做呢?我猜这是函数:如果我将 type=self 替换为 pk=1,它就会工作。
最佳答案
您不需要通过显式 查询获取TjgFaktor
。如果您查询 some_moment.typ
,Django 本身将执行隐式查询以获取对应于 Moment
的 TjgFaktor
(通过外键) 或 None
,如果外键设置为 None
。
我们可以这样查询:
def factor(self):
tjgfaktor = <b>self.typ</b>
if tjgfaktor:
return tjgfaktor<b>.factor</b>
如果没有相关的TjgFaktor
,那么这个函数也会返回None
。
如果你定义了大量的值,那么这个获取可能是低效的:Django 将从数据库中获取所有列,并且因为我们只对一个感兴趣,所以这将因此导致一些开销。
我们可以通过使用以下查询来避免这种情况:
def factor(self):
if self.typ<b>_id</b>:
return (TjgFaktor.objects<b>.values_list('factor', flat=True)</b>
.get(<b>pk=self.typ_id</b>))
关于django - 从 Django 中的不同类获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50802030/
这个问题在这里已经有了答案: final keyword in method parameters [duplicate] (9 个回答) 关闭 8 年前。 在此示例中,声明 Object fina
我的目标:是通过我的函数更新字段获取选定值并使用函数输出值运行它。 问题:当我从列表中选择值时,它不会触发函数,也不会更新字段。 感谢您的帮助。 HTML 12 14 16 18 20 22 24
我有一本具有这种形式的字典: myDict = {'foo': bar, 'foobar baz': qux} 现在,我想拆分字典键中的空格,使其成为下一个键并获取值(重复)。 myDictRev1
vector a; vector b; int temp_holder; cout > temp_holder) a.push_back(temp_holder); cout > temp_h
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿。当然,我
我正在使用 jquery ui 日期选择器来获取 fromDate 和 toDate 以下是from日期的代码 $("#from_date").datepicker({
我是一名优秀的程序员,十分优秀!