我在使用ModelMultipleChoiceField时遇到问题。我有一个名为Instrumentation的模型,另一个名为InstTemplate的模型:
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)
我想使用“ ManyToManyField”字段“ equipo”中的复选框来实现多重选择。正如我所阅读的,这种多重选择是在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”字段和名称“ Instrumentation object”。因此,查询集正在工作,但我只得到“仪器对象”。
{% block page %}
<div id="form" class="tab-content clearfix" style="display: block;">
<h4><strong>New instrumentation template: project {{ project.ref }}</strong></h4>
<hr class="alt1"/>
<form class="vertical" action="{% url "new_instrumentation" project.ref %}" method="post"> {% csrf_token %}
{{ form.as_ul }}
</form>
</div>
{% endblock %}
如何获取Instrumentation对象的字段?
__unicode__
在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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句