Django更改代理模型中的对象名称

2024-10-02 00:42:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多对多字段,Django在其中自动创建“through”表

roomextra = models.ManyToManyField(
    to='hotel.RoomExtra',
    related_name='room_extra',
    verbose_name='room extra',
)

这是房间课的一部分。Room类和RoomExtra类都有方法

def __str__

定义它们的对象名。引入了代理模型来更改Django admin上由Django创建的直通表的一些文本:

class RoomRoomExtraProxy(Room.roomextra.through):
    class Meta:
        proxy = True

    def __str__(self):
        return self.room.name + ' // ' + self.roomextra.name

但是,当您尝试删除带有额外房间的房间时,您会在“确定”页面上看到以下内容:

Summary

 - Rooms: 1
 - Room-roomextra relationships: 1

Objects

 - Room: 1
 - Room-roomextra relationship: Room_roomextra object (8)

如何覆盖“Room roomextra”和“Room_roomextra对象(8)”以使它们更方便用户


Tags: 对象djangonameselfmodelsdefextraclass

热门问题