首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ModelForm Django中显示外键属性

在ModelForm Django中显示外键属性
EN

Stack Overflow用户
提问于 2015-07-15 10:03:55
回答 2查看 1.8K关注 0票数 2

型号:

代码语言:javascript
复制
class Company(models.Model):
    id = models.AutoField(primary_key = True)
    name = models.CharField(max_length = 30)
    parent = models.ForeignKey('self', null=True, blank=True)

表格:

代码语言:javascript
复制
class CompanyForm(forms.ModelForm):

    class Meta:
        model = Company
        fields = ['name', 'parent']

当我查看表单的“父”下拉列表时,我得到了一个对象列表:

  • 公司目标
  • 公司目标
  • 公司目标
  • 公司目标

我希望在下拉列表中显示对象的名称:

  • 联合利华
  • 通用磨坊
  • 牛皮纸
  • 尤普利特

我需要添加哪些代码行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-15 10:20:10

您必须实现__unicode__遗留方法,或者如果您是最新的,您将实现__str__方法,将类装饰为python2compatible 在django 1.11文档中看到

代码语言:javascript
复制
from django.utils.encoding import python_2_unicode_compatible


@python_2_unicode_compatible
class Company(models.Model):
    id = models.AutoField(primary_key = True)
    name = models.CharField(max_length = 30)
    parent = models.ForeignKey('self', null=True, blank=True)

    def __str__(self):
        return '%s' % self.name

在2019年,您可能/希望在python3中开始您的项目,并且能够省略所有python2/3兼容性的内容。

票数 1
EN

Stack Overflow用户

发布于 2017-10-15 18:10:25

在这个岗位上的处理方式有点不同。在这里,他们将类的str属性设置为要显示的字段的值。不过,不确定这是否有副作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31427361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档