Реляционная база данных в Django во всплывающей форме - PullRequest
1 голос
/ 28 марта 2019

В базе данных django есть две таблицы:

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

IMG1 - Manufacturer

и

Транспортер

enter image description here

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

enter image description here

Когда я нажимаю эту кнопку, открывается всплывающее окно со всеми предварительно заполненными записями с полем BID и кнопкой отправки и отмены,Например: -

enter image description here

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

Как мне это сделать?и какие поля должны быть сделаны один-ко-многим / многие-к-одному?

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

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 Ответ

1 голос
/ 28 марта 2019

Поскольку доска конкретного производителя может иметь много заявок, мы можем использовать доску производителя в качестве внешнего ключа в модели торгов.Уникальный идентификатор (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')
...