내 기본 클래스 모델 거래에서 설명, 가격, date_created 등의 특정 필드가 있습니다. 이제 하위 필드가있는 필드를 추가해야합니다. 예를 들어, 거래에 나이 필드를 추가하려고합니다. 이 나이 필드에는 하위 필드 (예 : score_for_kid, score_for_baby, score_for_old 등)가 있으며 관리자로부터이 점수를 편집하고 싶습니다. 이러한 연결 모델의Django : 모델 필드 내의 하위 필드
class Deals(models.Model):
description = models.TextField()
price = models.DecimalField(max_digits=7, decimal_places=2)
url = models.URLField(verify_exists=False)
currency = models.CharField(max_length=3)
created_date = models.DateField(auto_now_add=True)
kid_score = models.IntegerField(max_length=2,default=0)
teenager_score = models.IntegerField(max_length=2,default=0)
youth_score = models.IntegerField(max_length=2,default=0)
old_score = models.IntegerField(max_length=2,default=0)
내가 (4 개 가지 분야에서 20 ~ 25 정도)이 모든 서브 필드를 저장하지 않는 대신 나이 필드 : 여기
내 models.py입니다 하위 필드. ManyToManyField가이 작업을 할 수 있습니까?기본 요구 사항은 사용자가 브라우저에서 하위 필드 (예 : 키즈)를 선택하면 높은 점수를 가진 모든 개체가 표시된다는 것입니다.
나는 장고를 매우 신중하게 생각하며 이것에 대한 도움은 훌륭 할 것이다. 감사.
감사합니다. Aidan, 실제로 각 거래에 대해 kid_score (및 다른 점수)를 하나만 갖고 싶지만이 경우 25 개의 필드를 사용하면 모델이 복잡해질 것이라고 생각합니다. 위의 코드에서이 필드는 4 개 뿐이지 만 다른 필드에 대해서는 더 많은 필드가 있습니다. 나는 왜 내 모델에서 25 개의 필드를 모두 유지하는 것이 외래 키를 갖는 대신 나이를 먹는 것이 낫지는 모르겠다. 또한 'Age = models.ForeignKey (Deals)'을 내 Age 모델 클래스에 넣는 것이 나에게 잘 맞는다. 개념을 가져 주셔서 고맙습니다. 일단 내가 얻으면 꽤 부드럽습니다. –
그렇다면 모든 것을 하나의 모델로 유지해야합니다. OneToOne 필드를 만들 수는 있지만 모든 거래 객체에 점수가 주어지면 이것이 올바른 솔루션이라고 생각하지 않습니다. html로 필드 숨기기를 표시하면됩니다. 이것은 ModelForms/Django Admin으로하기에는 너무 어렵지 않습니다. –
예 각 거래 오브젝트에는 하나의 kid_score 등만 있으므로 거래 모델에 해당 필드를 추가하는 것이 좋습니다. 그러나, 내가 말했듯이, 나는 그러한 분야가 30 개가 넘는 많은 분야 (나이 6, 관계 10 등)를 가지고있다. 30-40 개의 필드가있는 모델이 쿼리 또는 기타 복잡한 작업을 느리게 실행하지 않습니까? 더 좋은 방법이 있고 더 빨리 만들 수 있습니까? –