2016-11-04 1 views
0

Я пытаюсь создать корзину, используя приложение django-carton. У меня две модели: Halls and Caterer. Я хочу добавить любой из этих объектов Halls или Caterer в корзину, когда я назову метод add(). При использовании этого API, мне нужно, чтобы зарегистрировать свою модель в settings.py нижеВставка или обновление Django в одной таблице должна отражать в другой таблице

CART_PRODUCT_MODEL = 'marriage_halls.models.Hall' 

можно зарегистрировать только одну модель в то время. Поэтому я не могу добавить объект Caterer в корзину. Чтобы решить эту проблему, я планирую создать новую модель продукта, которая будет содержать 3 столбца, а именно. {имя, цена, город}. Это столбцы, которые являются общими для Hall и Caterer, и я хочу отображать их, когда я вызову метод show(). Мой первый вопрос: правильно ли это сделать?

Если это правильный подход, я хочу, чтобы каждый раз, когда я добавлял новый Hall или Caterer в их соответствующие таблицы через интерфейс администратора Django, только эти 3 значения столбца должны быть вставлены в таблицу Product (INSERT new row in таблица продуктов). Как я могу это достичь?

ответ

0

Сделайте продукт базовым классом и используйте наследование нескольких таблиц.

https://docs.djangoproject.com/en/1.10/topics/db/models/#multi-table-inheritance

+0

Так что, если я делаю класс продукта базовый класс и зал и Кейтеринг как ребенок классы, а если добавить новую запись в зале или Caterer, то он будет вставлен в таблице продукта, а? и могу ли я каким-то образом вставить первичные ключи таблицы Hall и Caterer в Product в качестве двух разных столбцов, а именно. HallId, CatererId –

Смежные вопросы