Отнесение данных в модели Django к другой модели
У меня есть эта модель.
class AuctionListings(models.Model):
"""
Model for all the listings listed on the site.
"""
title = models.CharField(max_length=40)
description = models.TextField()
image_url = models.URLField()
current_bid = models.PositiveSmallIntegerField()
category = models.CharField(choices=CATEGORIES, max_length=5)
date = models.DateField(default=date.today)
datetime = models.DateTimeField(default=timezone.now)
date_last_updated = models.DateField(auto_now=True)
date_added = models.DateField(auto_now_add=True)
timestamp_last_updated = models.DateTimeField(auto_now=True)
timestamp_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"Title:{self.title}, Date Added:{self.date_added}, Category:{self.category}"
class Meta:
"""
Specifies the plural name of the model for the Django Admin Panel.
"""
verbose_name_plural = "Auction Listings"
Я хочу иметь возможность устанавливать начальную ставку в аукционных объявлениях, когда кто-то создает новое объявление. Точно так же, как это делает eBay. Я хочу, чтобы ставка также могла быть обновлена в модели ставок. И чтобы при удалении объявления ставка на него также удалялась. Потому что листинга не существует. Я пробовал использовать внешний ключ, но тогда я получаю следующее
Вы пытаетесь добавить недействительное поле 'current_bid' в аукционные листинги без значения по умолчанию; мы не можем этого сделать (базе данных нужно чем-то заполнить существующие строки). Пожалуйста, выберите исправление:
- Provide a one-off default now (will be set on all existing rows with a null value for this column)
- Quit, and let me add a default in models.py
Это модель ставки, которую я хочу связать с моделью аукциона.
class Bids(models.Model):
"""
Model to allow one to place bids on listings.
"""
bid_price = models.ForeignKey(AuctionListings, on_delete=models.CASCADE)
bidder = models.ForeignKey(User, on_delete=models.CASCADE)
listings = models.ManyToManyField(AuctionListings)
Я только начал изучать Django и действительно не знаю, где искать, поэтому буду благодарен за помощь и объяснение, что именно нужно делать.