У меня есть поле как часть класса комнаты
roomextra = models.ManyToManyField(
to='hotel.RoomExtra',
related_name='room_extra',
verbose_name='room extra',
)
, в результате чего Django создал для меня связь многих ко многим. Это отношение отображается в виде TabularInline:
admin.py
class RoomExtraInLine(admin.TabularInline):
model = Room.roomextra.through
extra = 1
verbose_name = _('Customise Room Extra')
verbose_name_plural = _('Customise Room Extra(s)')
form = AddRoomAddRoomExtrasForm
В администраторе Django, если я добавлю дополнительную комнату, я получу текст на изображении ниже:
Room_roomextra object (5)
выше выбранной мной опции. Как я могу изменить строку Room_roomextra?
Обновление
Код по запросу
class RoomExtra(models.Model):
PER_PERSON = 0
PER_ROOM = 1
PER_CHOICES = [
(PER_PERSON, _('Person')),
(PER_ROOM, _('Room')),
]
name = models.CharField(max_length=100)
cost = models.DecimalField(
default="0.00",
max_digits=10,
decimal_places=2,
validators=[MinValueValidator(Decimal('0.00'))],
)
cost_per = models.IntegerField(
choices=PER_CHOICES,
default=PER_ROOM,
verbose_name=_('Cost per'),
)
def __str__(self):
return self.name
class Room(models.Model):
name = models.CharField(max_length=100)
type = models.ForeignKey(
to='hotel.RoomType',
on_delete=models.CASCADE,
)
location = models.ForeignKey(
to='hotel.Location',
on_delete=models.CASCADE,
)
description = models.TextField(
blank=True,
max_length=500,
)
roomextra = models.ManyToManyField(
to='hotel.RoomExtra',
related_name='room_extra',
verbose_name='room extra',
)
bathroom = models.ForeignKey(
to='hotel.Bathroom',
on_delete=models.CASCADE,
)
available = models.BooleanField(default=True,)
def __str__(self):
return self.name