Я создаю сайт для продажи велосипедов в джанго. У меня есть класс Bike, который будет содержать велосипеды; это выглядит следующим образом:База данных и класс дизайна Django
class Bike(models.Model):
brand = models.CharField(max_length=100)
model = models.CharField(max_length=100)
Теперь я хотел бы добавить поле колеса, описывающее колеса велосипеда, и я хотел бы это поле содержит, возможно, несколько полей, таких как марку, размер колеса. Я хотел бы, чтобы эти детали о реализации колес были отделены от спецификации класса велосипеда; однако я ожидаю, что каждое колесо будет привязано к одному велосипеду.
Идея у меня было сделать следующее:
class Wheels(models.Model):
description = models.CharField(max_length=100)
size = models.DecimalField(max_digits=5,decimal_places=2)
, а затем включить новое поле в моем велосипеде:
class Bike(models.Model):
# previous fields
wheels = models.ForeignKey(Wheels)
у меня есть, однако, некоторые сомнения по этому поводу:
1) это правильный дизайн? Если я это сделаю, у меня будет база данных колес, которую я не думаю, что мне действительно нужно. Я просто хочу иметь гибкие поля в базе данных байка. В принципе, я ожидаю, что у меня будет одна к одному связь между велосипедами и колесами.
2) Если это правильный дизайн, то я бы хотел, чтобы вы могли добавлять колеса на лету, добавляя велосипед (никогда не добавляйте колеса отдельно). Каков наилучший способ сделать это?
Большое спасибо за любую подсказку/ссылку. Я начинаю с django ...
Ok спасибо большое за ваш ответ. и означает ли это, что когда я добавляю велосипед, я должен выбрать колеса из той, которую я уже добавил, или могу создать поля также для спецификации колеса, чтобы одновременно создавать велосипед и колеса (по крайней мере, если я хотеть) ? Я нашел InlineModelAdmin, но у меня сложилось впечатление, что оно не применяется в моем случае? – vib