Django admin: обратный выбор внешних ключей
Я хочу добавить уже существующие элементы с иностранным ключом из админки родителя. У меня есть модель "Bundle" для хранения элементов "Product"; many-to-one/foreignkey:
models.py
class Bundle(models.Model):
title = models.CharField(max_length=300)
class Product(models.Model):
title = models.CharField(max_length=300)
bundle = models.ForeignKey(
'Bundle',
on_delete=models.CASCADE,
null=True,
blank=True,
)
Ниже, я использовал StackedInline, но это для создания новых продуктов с формой:
admin.py
class ProductInline(admin.StackedInline):
model = Product
@admin.register(Bundle)
class BundleAdmin(admin.ModelAdmin):
inlines = [
ProductInline,
]
Вместо этого я хочу многократно добавлять существующие продукты из выпадающего списка / с поиском в разделе Bundle в админке. Итак, я создаю Bundle, а затем добавляю ряд продуктов из выпадающего списка / с помощью поиска.
Заранее спасибо.
Для вашего требования, вы можете использовать ManyToManyField
в модели Bundle
вместо ForeignKey
в модели Product
.
Проверьте приведенный ниже код.
class Bundle(models.Model):
title = models.CharField(max_length=255)
product = models.ManyToManyField('Product')
class Product(models.Model):
title = models.CharField(max_length=255)
Затем вы можете зарегистрировать интерфейсы администратора:
admin.site.register(Bundle)
admin.site.register(Product)
Тогда вы можете добавить серию Product
из выпадающего списка/поиска.