Я новичок в Python & Django, в настоящее время работаю над приложением доставки еды.
При попытке добавить новый объект Pizza в администраторе появляется следующая ошибка: "" необходимо указать значение для поля "item_ptr", прежде чем можно будет использовать это отношение "многие ко многим".
У меня есть следующее: в models.py
class Item(models.Model):
name = models.CharField(max_length=64)
price = models.DecimalField(decimal_places=2,max_digits=10, default=0)
size = models.CharField(choices=SIZES, max_length=64, default="R")
def __str__(self):
return f"{self.name}, {self.size}, ${self.price}"
class Pizza(Item, abstractToppingConfig):
type = models.ForeignKey(pizzaType, on_delete=models.CASCADE)
def save(self, *args, **kwargs):
if not self.id:
newItem = Item(name=self.name, price=self.price, size=self.size)
newItem.save()
self.item_ptr = newItem
super(Pizza, self).save(*args, **kwargs)
def __str__(self):
return f"{self.type} {self.name}, {self.size}"
Я посмотрел несколько ответов здесь и понял, что ошибка происходит из-за чтобы родительский класс не был сохранен во время создания объекта Pizza. С этой целью я пытаюсь переопределить метод сохранения модели, чтобы сначала сохранить объект Item и добавить связь, однако, похоже, все это работает.
Создание и сохранение объекта в Python Оболочка работает просто отлично, но не происходит при сохранении объекта Pizza.
Django Версия: 2.2.6
Полный возврат: https://gist.github.com/Michelle-lele/7b1e60a7a1cf804bd74cfdaae5091c4e