-4

このメソッド (records_quantity) を呼び出す場所もわかりません。プロンプトを表示してください。エラーが表示されるようになりました (AttributeError: 'Subject' object has no attribute 'record_set')

class Subject(models.Model):
    name = models.CharField(max_length=100)

    def records_quantity(self):
        return self.record_set.count()

z = Subject()
z.records_quantity()

class Record(models.Model):
    subject = models.ForeignKey(Subject)
    record_short_description = models.CharField(max_length=100)
4

1 に答える 1

2

属性として宣言する代わりに、モデル メソッドを作成します。

class Subject(models.Model):
    name = models.CharField(max_length=100)

    def records_quantity(self):
        return self.record_set.count()

今、あなたは次のようなことができます

subject.records_quantity()

subjectモデルのインスタンスはどこですかSubject

records_quantityで にアクセスしたくない場合は、デコレータ()を使用してください@property

class Subject(models.Model):
    name = models.CharField(max_length=100)

    @property
    def records_quantity(self):
        return self.record_set.count()

したがって、次のようにアクセスできます

subject.records_quantity
于 2013-11-14T16:08:04.893 に答える