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 из выпадающего списка/поиска.

enter image description here

Вернуться на верх