Vehicle이라는 PolymorphicModel 클래스가 있는데이 클래스에서 Car와 Truck이라는 두 클래스를 파생했습니다.일반 뷰에서 PolymorphicModel 클래스 개체를 모델로 제어
저는 UpdateView를 사용하여 업데이트하지만 vehicle_list에서 vehicle_id가 무작위로 생성됩니다. 그리고이 모델은 어떤 차량 유형을 제어해야합니까. 그러나 나는 할 수 없었다.
내 클래스 :보기에서
class Vehicle(PolymorphicModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, verbose_name="ID")
class Car(Vehicle):
car_license = models.CharField(max_length=32)
class Truck(Vehicle):
truck_license = models.CharField(max_length=32)
:
class VehicleUpdate(UpdateView):
car = object
if car.car_license is not None:
model = Car
else:
model = Truck
fields = '__all__'
def get_success_url(self, **kwargs):
return reverse_lazy('person-list')
그러나이 오류주고 : 그건 그렇고
AttributeError: type object 'object' has no attribute 'tr_id'
을, 나는 ") (isinstance"를 사용하려 그러나 그것은 작동하지 않았다. 어쩌면 PolymorphicModel에 관한 것일 수도 있습니다. 모르겠습니다. class
문이 실행될 때 (함수 정의 외부) 클래스 최고 수준의
class VehicleUpdate(UpdateView):
if isinstance(object, Car):
model = Car
else:
model = Truck
fields = '__all__'
def get_success_url(self, **kwargs):
return reverse_lazy('person-list')
클래스 수준에서 그런 속성에 액세스 할 수 있다고 생각되는 이유는 무엇입니까? –