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_omitted_1,screening_instance.get_omitted_2 upto screening_instance.get_omitted_10。有沒有更好的方法來做到這一點,而不是創建get_omitted_1,get_omitted_2 ..方法爲每個案例get_omitted_%d?Python中的動態運行時方法
我試着在運行時創建動態函數,但它有一些問題。我試過這樣的事情:
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)
我不確定你爲什麼相信代碼可以工作... –
或者你爲什麼認爲這將是一個好主意。 –
我得到AttributeError:'篩選'對象沒有屬性'get_omitted_1'與此代碼 – Abhaya