代码之家  ›  专栏  ›  技术社区  ›  rom

django模型选择字段选择列

  •  1
  • rom  · 技术社区  · 11 年前

    当只选择了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))
    

    This works

    但是 下面的代码不起作用 :

    class ActsAddForm(forms.Form):
        actsToValidate=forms.ModelChoiceField(queryset=ActsIdsModel.objects.values("releveAnnee", "releveMois", "noOrdre").filter(validated=0))
    

    This does not work!!

    如何解决问题?当我选择列时,我的模型的unicode函数似乎不再被调用。正确的

    1 回复  |  直到 11 年前
        1
  •  2
  •   mariodev    11 年前