2009-09-01 7 views
4

외래 키 값을 얻으려면 어떻게해야합니까? 저는 연중, 시리즈, 엔진 유형, 차체 스타일, 변속기 및 구동 열차와 연결되는 공통된 차량 모델을 가지고 있습니다. 모두 외래 키로 사용됩니다. 내 애플 리케이션에 대한 이러한 필드의 가치를 얻고 싶습니다,하지만 나는 그들에 대해 어떻게 갈 것인지에 관해서 붙어 있습니다. 어떤 아이디어든지 높게 평가 될 것이다.외래 키 가져 오기

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) 
+0

약간의 질문을 명확히 해 주시겠습니까? 모델 정의를 제공 할 수 있습니까? –

답변

3

실제 ID가 필요합니까? my_vehicle_ref.series.id과 같은 것을 시도해보십시오. 당신이 그것의이의 속성에 액세스 할 수 있도록

또한, 나는 my_vehicle_ref.series.model.model, 예를 들어, 당신은 series 속성이 바로 정말 Series의 인스턴스가 있음을 알 수 있기를 바랍니다.

+0

sweet ... 시도해 보겠습니다. –

+0

BTW ... 템플리트에서이 값에 액세스하고 있습니다 ... 이것이 의미하는 바가 아니라면 vehicle.year.id가 1 년을 반환하기로되어 있는지 확실하지 않습니다 ... 권리? 나는 아직 장고를 완전히 이해하지 못해 장고에 조금 익숙하다. –

+0

(자습서) [http://docs.djangoproject.com/ko/dev/intro/tutorial01/]을 보셨습니까? 좋은 소개예요. 'vehicle.year.id'는'Year'의'id' 속성을 반환합니다. 아마도'자동'으로 생성되었을 것이고, 아마도 당신이 원하는 것이 아닌 것 같습니다. 제공된 모델 정의에서 '연도'에는 대부분의 사람들이 전통적으로 모델 연도로 생각하는 것과 일치하는 속성이 없습니다. 'model_year = CharField (max_length = 6) '또는 이와 유사한 속성을 추가 할 수 있습니다. –