Django - edit many-to-many inline

Обновить

March 2019

Просмотры

159 раз

1

Я следующая модель

class Day(models.Model):
    date = models.DateField(auto_now=False, auto_now_add=False)
    price = models.FloatField()
    payment_method = models.CharField(max_length = 200, blank=True)
    payment_date = models.CharField(max_length=200, blank=True)
    room = models.ForeignKey(Room, null=True, blank=True, verbose_name='Номер', on_delete=models.CASCADE)

    def __unicode__(self):
        return str(self.date)

class Reservation(models.Model):
    start = models.DateField(verbose_name='Заезд', auto_now=False, auto_now_add=False, blank=False)
    end = models.DateField(verbose_name='Выезд', auto_now=False, auto_now_add=False, blank=False)
    check_in_time = models.TimeField(verbose_name='Время заезда', blank=False)
    check_out_time = models.TimeField(verbose_name='Время выезда', blank=False)
    has_refund = models.BooleanField(verbose_name='Возвратная бронь', default=True)
    payed = models.BooleanField(verbose_name='Оплачено', default=False)
    reserved_days = models.ManyToManyField(Day, blank=False)
    additional_services = models.ManyToManyField(AdditionalService)
    guest_name = models.CharField(verbose_name='Имя гостя', max_length=200, blank=True)
    reservation_number = models.CharField(verbose_name='Номер брони', max_length=200, blank=True)

То , что я хочу , чтобы иметь возможность редактировать Dayна Reservationстранице

Я стараюсь следующее, как в Джанго документы

class ReservedDaysInline(admin.TabularInline):
    model = Reservation
    extra = 1

class ReservationAdmin(admin.ModelAdmin):
    inlines = (ReservedDaysInline,)

class DayAdmin(admin.ModelAdmin):
    inline = (ReservedDaysInline,)


admin.site.register(Reservation, ReservationAdmin)
admin.site.register(Day, DayAdmin)

Но это не работает.

Что я делаю неправильно ?

1 ответы

3

Try this from doc

class ReservedDaysInline(admin.TabularInline):
    model = Reservation.reserved_days.through
    extra = 1

class ReservationAdmin(admin.ModelAdmin):
    inlines = (ReservedDaysInline,)
    exclude = ('reserved_days',)