Django ManyToManyField 呈现为 object() 而不是描述
Django ManyToManyField renders as object() instead of description
我正在使用 Django 的 ManyToManyField,以便我的用户可以从复选框中生成 select 倍数。这一切似乎都在正常工作和保存,除了显示显示 "Choice Object(1)" 而不是描述。
models.py:
class Choice(models.Model):
description = models.CharField(max_length=20)
def __unicode__(self):
return unicode(self.description)
class Person(models.Model):
name = models.CharField(max_lenght=20)
choice = models.ManyToManyField(Choices) #disciplines offered by an academy
def __unicode__(self):
return self.name
forms.py
class PersonForm(models.ModelForm):
class Meta:
model=Person
fields=('name','choice')
person_update_form.html
{% block content %}
<form method="post" enctype="multipart/form-data" novalidate>
{% csrf_token %}
{{ form.name }}
{{ form.choice }}
<button type="submit" class="btn btn-success">Save Person</button>
</form>
{% endblock %}
我的选择数据库有 3 个条目:'Red'、'Green'、'Blue'。 (即描述='Red')
当我呈现我的表单时,而不是看到一个框:
'Red'
'Green'
'Blue'
我看到一个盒子:
Choice Object(1)
Choice Object(2)
Choice Object(3)
有人知道如何让显示器显示描述而不是对象吗?
提前致谢。
你需要运行一个for循环。
{% for foo in form.choice.all %}
{{ foo }}
{% endfor %}
我正在使用 Django 的 ManyToManyField,以便我的用户可以从复选框中生成 select 倍数。这一切似乎都在正常工作和保存,除了显示显示 "Choice Object(1)" 而不是描述。
models.py:
class Choice(models.Model):
description = models.CharField(max_length=20)
def __unicode__(self):
return unicode(self.description)
class Person(models.Model):
name = models.CharField(max_lenght=20)
choice = models.ManyToManyField(Choices) #disciplines offered by an academy
def __unicode__(self):
return self.name
forms.py
class PersonForm(models.ModelForm):
class Meta:
model=Person
fields=('name','choice')
person_update_form.html
{% block content %}
<form method="post" enctype="multipart/form-data" novalidate>
{% csrf_token %}
{{ form.name }}
{{ form.choice }}
<button type="submit" class="btn btn-success">Save Person</button>
</form>
{% endblock %}
我的选择数据库有 3 个条目:'Red'、'Green'、'Blue'。 (即描述='Red')
当我呈现我的表单时,而不是看到一个框:
'Red'
'Green'
'Blue'
我看到一个盒子:
Choice Object(1)
Choice Object(2)
Choice Object(3)
有人知道如何让显示器显示描述而不是对象吗?
提前致谢。
你需要运行一个for循环。
{% for foo in form.choice.all %}
{{ foo }}
{% endfor %}