我有Parent Model
使用指向Foreign Key
的{{1}}。在这种情况下,“儿童模型”被称为Mstrgensalutationtype(实际上是Salutations)。
Child Model
用于创建Parent Model
基本上,下面是我在尝试选择称呼类型时得到的结果。
我需要看到的是
Model Form
问题:我在这里做错了什么?
TIA
models.py - 用作子模型
Mr.
Ms.
Mrs.
Prof.
Dr.
models.py - 用作父模型
class Mstrgensalutationtype(models.Model):
saltypeid = models.BigIntegerField(primary_key=True)
lang = models.CharField(max_length=2, blank=True, null=True)
shortval = models.CharField(max_length=7, blank=True, null=True)
salutationlong = models.CharField(max_length=20, blank=True, null=True)
class Meta:
managed = False
db_table = 'MstrGenSalutationType'
def __unicode__(self):
return u'%s ' % ( self.shortval )
我在下面做了以下更改 - 但仍然遇到了同样的问题。
class Mstrstorehead(models.Model):
tenantid = models.BigIntegerField(primary_key=True)
extrefacctno = models.CharField(max_length=20, blank=True, null=True, verbose_name="Account Reference No")
[... snip ...]
contactsalutationid = models.ForeignKey(Mstrgensalutationtype, models.DO_NOTHING, db_column='contactsalutationid', blank=True, null=True, verbose_name="Salutation")
[... snip ...]
class Meta:
managed = False
db_table = 'MstrStoreHead'
答案 0 :(得分:2)
__unicode__
方法仅在Python 2中有效 - it doesn't do anything in Python 3。您需要使用__str__
代替:
def __str__(self):
return self.shortval
另请注意,{3}中的u
字符串前缀是多余的。默认情况下,所有字符串都是unicode。
如果您需要同时支持Python 2和3,请使用上面链接中所述的python_2_unicode_compatible
。