@blackbb

Как автоматом заполнить поле ForeignKey в Django?

Здравствуйте. Есть две модели :
class Hotels(models.Model):
    vip = models.BooleanField(default = False, verbose_name = 'VIP размещение')
    title = models.CharField(max_length=200, verbose_name="Название")
    slug = models.SlugField(unique=True, verbose_name="URL")
    category = models.ForeignKey(Category, verbose_name='Раздел обьявления')
    place = models.ForeignKey(Place, verbose_name='Место расположения')

class Numbers(models.Model):
    title = models.ForeignKey(NumberTitle, verbose_name='Название')
    hotel = models.ForeignKey(Hotels, blank = True, null=True, verbose_name='Отель или гостевой дом, если есть')
    place = models.ForeignKey(Place, default="", verbose_name='Место расположения')


Сначала юзер добавляет отель, потом к этому отелю номер. Нужно чтобы поле place в форме добавления номера автоматом заполнялось значением place из hotel. Как это реализовать?
  • Вопрос задан
  • 454 просмотра
Решения вопроса 1
mututunus
@mututunus
Backend developer (Python, Golang)
Зачем это реализовывать в форме? Лучше делать это в pre_save Numbers.

@receiver(pre_save, sender=Numbers)
def fill_place(sender, instance, **kwargs):
    instance.place = instance.hotel.place
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sim3x
@sim3x
После создания отеля отправляем пользователя на страницу отеля и по урл тебе будет ясно в какой отель добавляется номер
Ответ написан
@some1else
Вопрос на самом деле здесь нужно задать вам - зачем дублировать поле place в модели Number, если оно однозначно соответствует полю из hotel?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы