我在使用django框架时,在models中写了一个建筑表building和房间表room,其中房间表引用建筑表中的建筑编号作为外键,但是在后台显示中显示为object(1)

models.py(建筑表)

class building(models.Model):
    building_id=models.AutoField('建筑编号',primary_key=True)
    building_name=models.CharField('建筑名称',max_length=100)
    remark=models.CharField('备注',max_length=150)
    class Meta:
        db_table='building'
        verbose_name='建筑基本信息'
        verbose_name_plural = verbose_name

models.py(房间表)

class room(models.Model):
    room_id=models.AutoField('房间编号',primary_key=True)
    room_name=models.CharField('房间名称',max_length=100)
    building_id=models.ForeignKey(building,verbose_name='建筑编号',on_delete=models.CASCADE,)
    remark=models.CharField('备注',max_length=150)
    class Meta:
        db_table='room'
        verbose_name='房间基本信息'
        verbose_name_plural = verbose_name

显示时:
在这里插入图片描述
筛选也是如此:
在这里插入图片描述

解决办法:
在被引用的字段下添加def__str__(self)进行输出,注意进行强制转换

class building(models.Model):
    building_id=models.AutoField('建筑编号',primary_key=True)
    def __str__(self):
        return str(self.building_id)
    building_name=models.CharField('建筑名称',max_length=100)
    remark=models.CharField('备注',max_length=150)
    class Meta:
        db_table='building'
        verbose_name='建筑基本信息'
        verbose_name_plural = verbose_name

在这里插入图片描述
这样就可以啦。

我在使用django框架时,在models中写了一个建筑表building和房间表room,其中房间表引用建筑表中的建筑编号作为外键,但是在后台显示中显示为object(1)models.py(建筑表)class building(models.Model): building_id=models.AutoField('建筑编号',primary_key=True) building_name=models.CharField('建筑名称',max_length=100) rem 实际效果: 以上这篇解决Django后台ManyToManyField显示Object的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:Django ORM多对多查询方法(自定义第三张表&ManyToManyField)在Django admin编辑ManyToManyField的实现方法Django 多表关联 存储 使用方法详解
django-dfk django-dfk 为 Django 实现延迟。 延迟在概念上类似于通用,不同之处在于它们在运行时解析为真正的,并导致在数据库创建正确的。 这个包允许你做两件事: * Declare that a model's foreign key field is 'deferrable', and should be repointed later * Repoint an existing model's foreign key fields, even if that model is not django-dfk aware. 您应该谨慎执行后者 - 将其视为与猴子修补类似的过程! 该软件包是 alpha 软件,功能不完整。 有关列表的内容,请参阅 TODO 部分。 django-dfk 与 Python 2.6、2.7、3.2 和
需求:序列化,获取的除id之的值 使用Django REST Framework虽然开发接口快速,但是如果想要获取到除id值之信息,直接继承serializers.ModelSerializer类,然后在fields指定返回的字段是获取不到的其他值的,比如我现在需要的name属性值,下面就给大家介绍两种方法通过序列化来获取我们想要的的值。 这里有两个Model:问卷(Questionnaire);问题(Question)。一张问卷包含多个问题,问题通过关联对应的问卷。 model.py class Questionnaire(models.Mod
给继承自models.Model的类添加一句objects = models.Manager()即可,实例代码如我的models.py文件: from django.db import models # Create your models here. class Book(models.Model): objects = models.Manager() # 避免后续IDE找不到objects属性 # id = models.IntegerField() # 自动创建 先抛出一个问题。银行就相当于一个数据库,你去银行取钱存钱办卡销卡,是你告诉银行柜员方便还是你自己去操作电脑办卡取卡方便?(你还不一定会,假设自动存款机还没发明),object在数据库就相当于银行里得银行柜员。 步入正题: 在django的view.py,我们可能回经常见到 book_set= Book.objects.all(),book_list = Book.ob...
它包含了一些基本字段以及数据的一些行为 我们只需要在类里面进行操作,就可以操作数据库,表,不需要直接使用SQL语句 我们通过创建类来创建数据表,所以对数据库的操作,都是对类与对类的对象进行操作,而不使用sql语句 ORM对象关系映射,实现了对象和数据库的映射,隐藏了数据访问的细节,不需要编写...
Django新手入门(五)——Models详解数据库ORMDjango的ORMDjangoModels定义models.py的类常用数据字段常用设置选项常用函数以及修饰词其他常用设置在Django使用数据库系统(以MySQL为例) 在之前的文章,我们对Django的MTV模式进行了介绍,相信大家对于Models已经有了初步了解。在这篇文章,我们将深入探索Models,以求深刻理解Django的数据操作。 动态网站最重要的部分,毫无疑问非数据库莫属了。把所有数据通过数据库系统维护在一些