Html ModelMultipleEchoIceField返回“;名称对象“;
我在使用ModelMultipleChiceField时遇到问题。我有一个名为Instrumentation的模型和其他名为InstTemplate的模型:Html ModelMultipleEchoIceField返回“;名称对象“;,html,django,Html,Django,我在使用ModelMultipleChiceField时遇到问题。我有一个名为Instrumentation的模型和其他名为InstTemplate的模型: class Instrumentation(models.Model): code = models.CharField(max_length=70, unique=True) marca = models.CharField(max_length=70) modelo = mod
class Instrumentation(models.Model):
code = models.CharField(max_length=70, unique=True)
marca = models.CharField(max_length=70)
modelo = models.CharField(max_length=70)
familia = models.CharField(max_length=150)
subfamilia = models.CharField(max_length=150)
calibration_date = models.DateField()
#test = models.ForeignKey(Test)
notes = models.TextField(max_length=170, blank=True)
utilization = models.DateField(blank=True)
def is_free(self):
return (self.utilization == None)
def is_calibrated(self):
return (self.calibration_date > date.today())
class InstTemplate(models.Model):
name = models.CharField(max_length=70)
equipo = models.ManyToManyField(Instrumentation)
boards = models.CharField(max_length=20)
project = models.ForeignKey(Project)
notes = models.TextField(max_length=170, blank=True)
我想在“equipo”字段中使用复选框实现多选,该字段是一个ManyToManyField。正如我所读到的,这个多重选择是在forms.py中实现的:
class InstTemplateForm(forms.ModelForm):
BOARD_CHOICES = (('1','ML801/AP815'),('2','ML455/AP455'),('3','ML801/AP801'),('4','ML801/AP836i'), ('5','ML801/AP809'), ('6','CANHEAD'), ('7','ML74/AP74'),('8','ML74/AP75'))
boards = forms.MultipleChoiceField(BOARD_CHOICES, widget=forms.CheckboxSelectMultiple())
equipo = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple(), queryset=Instrumentation.objects.all())
class Meta:
model = InstTemplate
但是在HTML中,使用下面的代码,我只获得数据库“id”字段和queryset获得的所有对象的名称“Instrumentation object”。因此,queryset正在工作,但我只得到“Instrumentation object”
{%block page%}
新的检测模板:项目{{project.ref}
如何获取Instrumentation对象的字段???在Instrumentation
模型中定义方法,以供模型对象的可读表示:
class Instrumentation(models.Model):
code = models.CharField(max_length=70, unique=True)
marca = models.CharField(max_length=70)
modelo = models.CharField(max_length=70)
familia = models.CharField(max_length=150)
subfamilia = models.CharField(max_length=150)
calibration_date = models.DateField()
#test = models.ForeignKey(Test)
notes = models.TextField(max_length=170, blank=True)
utilization = models.DateField(blank=True)
def is_free(self):
return (self.utilization == None)
def is_calibrated(self):
return (self.calibration_date > date.today())
def __unicode__(self):
return self.code # or self.marca what ever you want
天哪!!非常感谢你,伙计!强制性的Python3注意:在Python3中,定义的方法是
\uuuu str\uuuu
,而不是\uuuu unicode\uuuu
。
class Instrumentation(models.Model):
code = models.CharField(max_length=70, unique=True)
marca = models.CharField(max_length=70)
modelo = models.CharField(max_length=70)
familia = models.CharField(max_length=150)
subfamilia = models.CharField(max_length=150)
calibration_date = models.DateField()
#test = models.ForeignKey(Test)
notes = models.TextField(max_length=170, blank=True)
utilization = models.DateField(blank=True)
def is_free(self):
return (self.utilization == None)
def is_calibrated(self):
return (self.calibration_date > date.today())
def __unicode__(self):
return self.code # or self.marca what ever you want