class Mymodel(models.Model):
xxxx_count = ForeignCountField(filter={'foreign_table__xxxx': True})
yyyy_count = ForeignCountField(filter={'foreign_table__yyyy': True})
zzzz_count = ForeignCountField(filter={'foreign_table__zzzz': True})
qqqq_count = ForeignCountField(filter={'foreign_table__qqqq': True})
ssss_count = ForeignCountField(filter={'foreign_table__ssss': True})
rrrr_count = ForeignCountField(filter={'foreign_table__rrrr': True})
다음과 같이합니다.
class Mymodel(models.Model):
for code in ['xxxx','yyyy','zzzz','qqqq','ssss','rrrr']:
setattr(self, '%s_count' % code, ForeignCountField(filter={'foreign_table__%s' % code: True}))
그러나 이렇게하려고하면 오류가 발생합니다. "자체 정의되지 않았습니다." 이 코드를 다른 장소에 넣어야합니까?
아주 좋은 지적은, 나는이 방식을 잊어 버렸다. (장고가 추상적 모델 상속을 가졌던 이래로 나는 그렇게 오래 있었어. 이것은 아마도 메타 클래스를 작성하는 것보다 나은 해결책 일 것입니다. –
그래, 잘된거야. 단 한 가지 나쁜 점, 코드의 두 가지 다른 위치에있는 해당 필드의 정의 : 내부 및 외부 클래스. – ramusus