我想从django模型字段调用self方法来获取选择选项。
我搜索stackoverflow以及谷歌并找到一些解决方案,但这些解决方案在我的情况下不起作用。这里有一些解决方案已经存在。 Django: Call self function inside a Django model
这是我的模特:
MPL_CHOICE = (
("a", "assistance"),
("b", "Performed"),
("n", "Need assistance"),
("o", "Observed"),
)
class ProcedurName(models.Model):
my_choices = models.CharField(
"My Choices",
max_length=100,
null=False,
blank=False,
choices=self.mpl_choice_filed()
)
def mpl_choice_filed(self):
if self.pk:
avrage_acore = self.avrage_acore.all()
MPL_CHOICE_NEW = [(m.value,m.label) for m in minimun_avrage_acore]
return MPL_CHOICE_NEW
else:
return MPL_CHOICE
class ChoicesAfterEdited(models.Model):
label = models.CharField(
"MinimunAvrageScore Lavel",
max_length=250,
)
value = models.CharField(
"MinimunAvrageScore Value",
max_length=250,
)
procedure = models.ForeignKey(
ProcedureSetup,
null=True, blank=True,
related_name='avrage_acore'
)
如果您看到模型,在my_choices字段中我尝试调用self.mpl_choice_filed方法但我收到此错误。
NameError: name 'self' is not defined
请帮我找出解决方案。
答案 0 :(得分:1)
self
在Model类定义时不可用。
无论如何,对于choices
模型的不同实例,您不能有不同的ProcedurName
。您应该使用表单处理中的choices
进行操作。