Я пытаюсь создать отношение «один ко многим» в django, которое до сих пор работало нормально.
@register_snippet
class CarPart(models.Model):
title = models.CharField(max_length=50)
class Meta:
verbose_name_plural = 'Car Parts'
def __str__(self):
return self.title
class CarParts(CarPart):
source_page = ParentalKey(
'home.CarPage', related_name='carparts'
)
carpart = models.ForeignKey(
CarPart,
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
panels = [
SnippetChooserPanel('catpart'),
]
class CarPage(BasePage):
content_panels = BasePage.content_panels + [
InlinePanel('carparts', label="Car Part"),
]
def get_context(self, request):
context = super().get_context(request)
return context
Это работает нормально - я могу назначить автомобиль нескольким автомобильным деталям но проблема заключается в том, что всякий раз, когда я присваиваю автомобильную деталь, она автоматически создает новые пустые объекты, отличные от исходных данных во фрагменте или таблице автомобильных деталей.
При правильном выполнении
{% for part in car.carparts.all %}
{{ part.title }}
{% endfor %}
* 1008 отображаются правильные детали. * Но когда я удаляю пустые объекты из фрагмента автозапчастей, он удаляет автозапчасти в автомобиле, и значение l oop, похоже, не показывает никакого значения, поскольку удаляются связанные автозапчасти. Я не понимаю, почему он создает новые пустые объекты, но назначает правильные идентификаторы.
Например:
Если я выберу автомобильную деталь engine
в редакторе страниц и сохраню ее - она создаст новый пустой объект, но идентификатор кажется правильным. Он показывает движок в макете страницы, но когда я удаляю новый пустой объект, связанное с ним ядро исчезает.