모든 Django 모델에는 기본 기본 키 id
이 자동으로 생성됩니다. 내가 열이 big_id
라는 갖는 해당 데이터베이스 테이블없이 model_obj.big_id
로 big_id
에 액세스 할
big_id = id * SOME_CONSTANT
Django Model/Python 클래스에서 파생 된 특성을 쉽게 만들 수 있습니까?
: 나는 같은 모델 객체가 계산된다 다른 속성 big_id
를 갖고 싶어.
이것이 가능합니까?
모든 Django 모델에는 기본 기본 키 id
이 자동으로 생성됩니다. 내가 열이 big_id
라는 갖는 해당 데이터베이스 테이블없이 model_obj.big_id
로 big_id
에 액세스 할
big_id = id * SOME_CONSTANT
Django Model/Python 클래스에서 파생 된 특성을 쉽게 만들 수 있습니까?
: 나는 같은 모델 객체가 계산된다 다른 속성 big_id
를 갖고 싶어.
이것이 가능합니까?
음, 장고 모델의 인스턴스는 파이썬 객체, 또는 그래서 나는 어쨌든 들었다 : P 내가 어떻게 할 것입니다
:
class MyModel(models.Model):
CONSTANT = 1234
id = models.AutoField(primary_key=True) # not really needed, but hey
@property
def big_id(self):
return self.pk * MyModel.CONSTANT
를 분명히, 당신 것 저장하지 않은 모델을 사용하려고하면 예외가 발생합니다. big_id 값을 액세스 할 때마다 계산하지 않고 미리 계산할 수도 있습니다.
당신은 내가 지금 생각할 수있는 두 가지 옵션이있어class Person(models.Model):
x = 5
name = ..
email = ..
def _get_y(self):
if self.id:
return x * self.id
return None
y = property(_get_y)
: 가장 좋은 건 self.id을 반환 모델에 대한 방법을 정의하는 것입니다 데이터베이스에
감사합니다. 속성은 내가 찾고있는 것입니다 ... – akv