Получить значение внешнего ключа - PullRequest
4 голосов
/ 01 сентября 2009

Как я могу получить значения внешнего ключа? У меня есть общая модель транспортного средства, которая связана с годом, серией, типом двигателя, типом кузова, трансмиссией и трансмиссией ... все как внешние ключи. Я хотел бы получить значения этих полей для своего приложения, но я застрял в том, как я буду их обрабатывать. Любые идеи будут высоко оценены.

class Model(models.Model):

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


class Year(models.Model):

  ALPHA_NUMERIC_CHOICES = (
      ('1', 'Numeric'),
      ('A', 'Alphabetic'),
  )

  year = models.PositiveSmallIntegerField()
  position_7_char = models.CharField(max_length=1, choices=ALPHA_NUMERIC_CHOICES)
  position_10 = models.CharField(max_length=1, blank=False)

  def __unicode__(self):
      return unicode(self.year)


class Series(models.Model):

  series = models.CharField(max_length=20, blank=True)
  model = models.ForeignKey(Model)
  date_added = models.DateField()

  def __unicode__(self):
      name = str(self.model)+" "+str(self.series)
      return name


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)
  drive_train = models.ForeignKey(DriveTrain)

  def __unicode__(self):
      name = ''+str(self.year)+" "+str(self.series)
      return name


class Vehicle(models.Model):

  stock_number = models.CharField(max_length=6, blank=False)
  vin = models.CharField(max_length=17, blank=False)
  common_vehicle = models.ForeignKey(CommonVehicle)
  exterior_colour = models.ForeignKey(ExteriorColour)
  interior_colour = models.ForeignKey(InteriorColour)
  interior_type = models.ForeignKey(InteriorType)
  odometer_unit = models.ForeignKey(OdometerUnit)
  status = models.ForeignKey(Status)
  odometer_reading = models.PositiveIntegerField()
  selling_price = models.PositiveIntegerField()
  purchase_date = models.DateField()
  sales_description = models.CharField(max_length=60, blank=False)

  def __unicode__(self):
      return self.stock_numberodels.ForeignKey(CommonVehicle)

1 Ответ

3 голосов
/ 01 сентября 2009

Вам нужны настоящие идентификаторы? Попробуйте что-то вроде my_vehicle_ref.series.id.

Кроме того, я надеюсь, что вы знаете, что атрибут series здесь действительно является экземпляром Series, поэтому вы можете получить доступ к любым его свойствам, например, my_vehicle_ref.series.model.model.

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