다음 필드가있는 장고 모델이 있습니다.Django 모델의 동적 필드
(사용자 세션의 실시간 정보에 의존하는 일부 계산을 기반으로) 이러한 모델에 동적으로 일부 특성을 추가하는 데 대한 장단점에 대해 조언 해 드리고 싶습니다.
저는 현재 구현에 만족하지만 장기적으로 그 의미에 대해 우려하고 있습니다. 나쁜 디자인 패턴으로 간주됩니까? 이 경우에는 더 깨끗하게 할 수있는 대안이 있습니까? 템플릿 태그에서 계산하는 것이 더 깔끔한가요?
어쩌면이 논리를 관리자에 넣을 수 있습니까? 프록시 모델? 나는 이것을 프로퍼티로 생각했지만, 계산은 요청 객체에 의존하기 때문에 어떻게 든 뷰에서 완료되어야한다.
고마워요.
class Printer(TimeStampedModel):
user = models.ForeignKey(
User)
minimal_cost = models.IntegerField()
active = models.BooleanField(default=True)
def some_view(request):
for printer in printer_list:
printer.distance = printer.distance_point(user_point)
printer.materials_costs = MaterialsCosts(printer, cart=cart)
printer.minimum_price = printer.materials_costs.minimum_printer_price()
에서
다음장고의 집계 또는 유사한 것을 사용? –
이것들은 사소한 계산입니다. 예를 들어 Django는 거리 계산을 지원하지 않습니다 (GeoDjango 만 가능). 이 동적 필드가 잘못된 스타일이라는 것을 의미합니까? – cyberjoac
기존 코드 (특히 오류없이 작동하는 코드) 최적화에 관한 질문은 codereview.stackexchange.com –