从另一个模型调用模型的方法

时间:2016-11-07 16:20:26

标签: django django-models

我对sum({$ <GlYear = {"{'1'} =$(=max(GlYear))"}, GlPeriod = {"{'1'} <=$(=max(GlPeriod))"}>}Movement) 很陌生,所以我的问题似乎非常微不足道...... 我有2个模型(为了演示而简化):

django

class Subarticle(models.Model):
    parent_article = models.ForeignKey(Article, related_name='subarticles')
    priority = IntegerField()
    ....
    def getCheapest(self, quantity): //find cheapest subarticle based on qty
        //code

所以基本上每篇文章都有一个或多个子文章,我希望能够根据价格最低的子文章找到最优先级的文章的成本。

我正在使用&#34; class Article(models.Model): sub_article_qty = models.IntegerField() def production_cost(self): sub_article = Subarticle.objects.filter(parent_article=self).order_by('priority').first sub_article_price = sub_article.getCheapest(self.sub_article_qty) return sub_article_price*self.sub_article_qty &#34;使用大约rest_framwork

发送模型数据
serializer

但尝试这样做会给我带来以下错误:

from .models import Subarticles, Articles
from rest_framwork import serializers

class SubarticleSerializer(serializer.HyperlinkedModelSerializer):
     class Meta:
         model=Subarticle
         fields=('parent_article','priority')

class ArticleSerializer(serializer.HyperlinkedModelSerializer):
     class Meta:
         model=Article
         fields=('sub_article_qty','subarticles','production_cost')     

是否有可能按照我的目的去做,或者是否有其他方法可以实现这一目标?

1 个答案:

答案 0 :(得分:0)

first是一种方法;你没有打电话给它。

sub_article = Subarticle.objects.filter(parent_article=self).order_by('priority').first()

注意,更简单的拼写方法是:

sub_article = self.subarticles.all().order_by('priority').first()