Реляционная база данных в django во всплывающей форме

#python #django #python-3.x #django-forms #bootstrap-modal

#python #django #python-3.x #django-формы #bootstrap-модальный

Вопрос:

У меня есть две таблицы в базе данных django, которые являются следующими:

Производитель

IMG1 - Производитель

и

Транспортер

введите описание изображения здесь

Обе эти таблицы заполняются соответствующими формами. Теперь я отобразил данные от производителя на доске, подобной этой, и добавил кнопку «СДЕЛАТЬ СТАВКУ СЕЙЧАС!». кнопка.

введите описание изображения здесь

Когда я нажимаю эту кнопку, открывается всплывающее окно, в котором есть все предварительно заполненные записи с полем СТАВКИ и кнопкой отправки и отмены. Вот так:-

введите описание изображения здесь

Теперь я хочу, чтобы, когда я ввожу ставку и нажимаю кнопку отправки, она должна обновлять Load_ID (по которому мы делаем ставку), Transporter_ID (участник торгов) и bid_amount, а также автоматический bid_id в таблице.

Как мне это сделать? и какие поля следует сделать один ко многим / many-to-one?

Вот код для платы производителя:

 class ManufacturerBoardModel(models.Model):
  From = models.CharField(max_length=100,null=True)
  To = models.CharField(max_length=100,null=True)
  Type = models.CharField(max_length=100,null=True)
  Length = models.CharField(max_length=100,null=True)
  Weight = models.CharField(max_length=100,null=True)
  Numberoftrucks = models.IntegerField(null=True)
  MaterialType = models.CharField(null=True,max_length=100)
  Loadingtime = models.DateTimeField(null=True)

def _str_(self):
    return self.Origin
  

Ответ №1:

Поскольку конкретная плата производителя может иметь много заявок, мы можем использовать плату производителя в качестве внешнего ключа в модели торгов. Уникальный идентификатор (uuid) может использоваться в качестве ключа для ставок. У транспортера также может быть много ставок, следовательно, он также является внешним ключом. Но если вы хотите, чтобы один транспортер мог делать ставки на доске производителя только один раз, вы также можете установить уникальное ограничение на поля manufacturer_board и transporter.

 class Bidding(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    manufacturer_board = models.ForeignKey(ManufacturerBoardModel)
    transporter = models.ForeignKey(Transporter)
    amount = models.FloatField(default=0)
    class Meta:
        unique_together = ('manufacturer_board', 'transporter')