Пользовательская форма Django - PullRequest
1 голос
/ 02 февраля 2010

Я пытаюсь создать собственный бэкэнд для своей системы, и я наткнулся на небольшую загадку .... Я хочу дать пользователям возможность добавлять новые марки / модели / серии, которых еще нетСистема через форму.Мне интересно, как я поступлю по этому поводу ... мои модели выглядят так, как показано ниже:

class Manufacturer(models.Model):
  MANUFACTURER_POPULARITY_CHOICES = (
    ('1', 'Primary'),
    ('2', 'Secondary'),
    ('3', 'Tertiary'),
  )

  manufacturer = models.CharField(max_length=15, blank=False)
  date_added = models.DateField()
  manufacturer_popularity = models.CharField(max_length=1,
      choices=MANUFACTURER_POPULARITY_CHOICES)
  def __unicode__(self):
    return self.manufacturer

class Model(models.Model):
  model = models.CharField(max_length=20, blank=False)
  manufacturer = models.ForeignKey(Manufacturer)
  date_added = models.DateField()
  def __unicode__(self):
    name = ''+str(self.manufacturer)+" "+str(self.model)
    return name 

class Series(models.Model):
  series = models.CharField(max_length=20, blank=True, null=True)
  model = models.ForeignKey(Model)
  date_added = models.DateField()
  def __unicode__(self):
    name = str(self.model)+" "+str(self.series)
    return name

class Engine(models.Model):
  ENGINE_TYPE_CHOICES = (
    ('H', 'H'),
    ('I', 'I'),
    ('R', 'R'),
    ('V', 'V'),
    ('W', 'W'),
  )

  FUEL_TYPE_CHOICES = (
    ('G', 'Gas'),
    ('D', 'Diesel'),
  )

  size = models.DecimalField(max_digits=2, decimal_places=1)
  type = models.CharField(max_length=1, choices=ENGINE_TYPE_CHOICES)
  cylinders = models.PositiveSmallIntegerField() 
  spec = models.CharField(max_length=20, blank=True, null=True)
  fuel_type = models.CharField(max_length=1, choices=FUEL_TYPE_CHOICES)

class CommonVehicle(models.Model):
  year = models.ForeignKey(Year)
  series = models.ForeignKey(Series)
  engine = models.ForeignKey(Engine)
  body_style = models.ForeignKey(BodyStyle)
  transmission = models.ForeignKey(Transmission)
  speeds = models.PositiveSmallIntegerField()
  drive_train = models.ForeignKey(DriveTrain)
  horse_power = models.PositiveSmallIntegerField()
  litre_100km_city = models.DecimalField(max_digits=3, decimal_places=1) 
  litre_100km_hwy = models.DecimalField(max_digits=3, decimal_places=1)
  def __unicode__(self):
    name = ''+str(self.year)+" "+str(self.series)
    return name 

1 Ответ

2 голосов
/ 02 февраля 2010

Это, кажется, довольно стандартная работа для формы модели Django. Я рекомендовал бы следовать документации на http://docs.djangoproject.com/en/dev/topics/forms/modelforms/. Там есть подробные инструкции о том, как создать форму из модели и затем сохранить возвращенную отправку в базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...