当只选择 2 或 3 列时,我无法弄清楚如何格式化 ModelChoiceField 的输出。
这是我的模型:
class ActsIdsModel(models.Model):
releveAnnee = models.IntegerField(max_length=4, blank=False, null=False)
releveMois=models.IntegerField(max_length=2, blank=False, null=False)
noOrdre=models.IntegerField(max_length=2, blank=False, null=False)
...
#many other fields
...
def __unicode__(self):
releveAnnee=vn.variablesNameDic['releveAnnee'] + "=" + str(self.releveAnnee)
releveMois=vn.variablesNameDic['releveMois'] + "=" + str(self.releveMois)
noOrdre=vn.variablesNameDic['noOrdre'] + "=" + str(self.noOrdre)
return releveAnnee + ", " + releveMois + ", " + noOrdre
下面的代码有效,但我得到了所有的列(所以对我的目的来说效率不高):
class ActsAddForm(forms.Form):
actsToValidate=forms.ModelChoiceField(queryset=ActsIdsModel.objects.filter(validated=0))
但是下面的代码不起作用:
class ActsAddForm(forms.Form):
actsToValidate=forms.ModelChoiceField(queryset=ActsIdsModel.objects.values("releveAnnee", "releveMois", "noOrdre").filter(validated=0))
如何解决问题?似乎当我选择列时,我的模型的 unicode 函数不再被调用。正确的?