class Screening(models.Model):
def get_omitted_1(self):
return OmittedInformationReason.objects.get(pk=self.omitted_1).name
get_omitted_1 = property(get_omitted_1)
screening_instance.get_omit_1 、screening_instance.get_omit_2 から screening_instance.get_omit_10 までアクセスしたい。get_omit_1、get_omit_2.. get_omit_%d のような各ケースのメソッドを作成せずにこれを行うより良い方法はありますか??
実行時に動的関数を作成しようとしましたが、問題がありました。私はこのようなことを試しました:
def omitted_list(self,x):
def omitted_function(self):
opk = "omitted_%d" % x
return OmittedInformationReason.objects.get(pk=self.opk).name
omitted_name = 'get_omitted_'+ str(x)
setattr(self.__class__, omitted_name , omitted_function)
omitted_name = property(omitted_name)
for x in range(1, 3):
omitted_list(x)