2
我有这个model.pyDjango的脆皮Multichoices表(外键)正在打印 “对象”,而不是Object.name
class BD(models.Model):
b_Name = models.CharField(max_length=200)
def __unicode__(self):
return self.b_Name
class Data(models.Model):
o_name = models.CharField(verbose_name='Enter your Name', max_length=100)
d_name = models.CharField(max_length=100)
b = models.ForeignKey(BD)
而且我有这个form.py:
from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, Field
from crispy_forms.bootstrap import (
PrependedText, PrependedAppendedText, FormActions)
from .models import Data, BD
class Form(forms.ModelForm):
class Meta:
model = Data
fields = ('o_name', 'd_name', 'b')
helper = FormHelper()
helper.form_method = 'POST'
helper.add_input(Submit('Submit', 'Submit', css_class='btn-primary'))
问题与b一起。 因此,如果我正确理解这是如何工作的,则外键使django获取包含在我的postgresql服务器上的一个名为“data_DB”的表中的某个对象。
我没有得到的是,对于b,香脆应该生成一个列表框,其中包含我的postgresql表的每行的b_name,而它只显示“BD对象”作为选择,尽可能多的时间表。
我认为功能:
def __unicode__(self):
return self.b_Name
是为了回报我所感兴趣的对象,而不是对象本身。
我误解了什么?
编辑:这就是HTML输出:
<select class="select form-control" id="id_b" name="b">
<option value="" selected="selected">---------</option>
<option value="2">BData object</option>
<option value="1">BData object</option>
<option value="3">BData object</option>
</select>
值应该是BDdate.b_Name
您使用的是什么版本的Python? –
带有virtualenv的Python 3.5。我忘了提及它。 – BoobaGump