저는 Web Apps & SEO로 일하고 있습니다. StackOverflow는 파이썬에서 제 길을 배우는 데있어 훌륭한 자료였습니다 & 장고는 커뮤니티에 큰 감사를드립니다. 이제 내 질문에!F 객체없이 Django의 두 필드를 비교하십시오.
class Subscription(models.Model):
hotel = models.ForeignKey("Hotel", related_name="subscriptions")
tier = models.ForeignKey("Tier")
enquiry_count = models.PositiveIntegerField(default=0)
start_date = models.DateField(null=True, blank=True)
end_date = models.DateField(null=True, blank=True)
과 :
class Hotel(models.Model):
name = models.CharField("Hotel Name", max_length=128)
address = models.TextField("Address", blank=True)
town = models.CharField(max_length=64)
star = models.PositiveIntegerField(default=0, null=True, blank=True)
:
class Tier(models.Model):
name = models.CharField(max_length=32)
enquiry_limit = models.PositiveIntegerField(default=0)
가 나는 또한 내가 매우 simlified 형태로 여기에 보여주지 호텔 모델이
나는 장고 모델의 몇 가지있다
각 호텔마다 내 검색 결과에 구독이 있어야합니다. 각 구독에는 특정 enquiry_limit가있는 계층이 있습니다. end_date에 도달하거나 enquiry_count가 초과되면 구독이 부족합니다. 즉 해당 계층의 enquiry_limit에 도달합니다.
나는 F 개체로이 일을하는 간단한 방법을 발견하고 내 dev에 컴퓨터에서 잘 작동하는 제외 : 그것은 장고를 작동하고 있기 때문에 이는 그러나 사이트의 라이브 버전에서 작동하지 않습니다self.premium_hotels = Hotel.objects.select_related().exclude(
Q(subscriptions__end_date__lte=datetime.date.today()) | Q(subscriptions__enquiry_count__gte=F('subscriptions__tier__enquiry_limit')))
1.0. F 개체없이이 쿼리를 수행하는 방법에 대한 팁?
나는 확실한 솔루션을 업그레이드하는 것을 깨닫게하지만 우리는 이것이 바로 출시가 필요하고 우리가 사전에 1.3
감사 장고로 이동하기 전에 나는 & 시험을 준비하는 시간이 필요합니다!
버전을 건너 뛰지 않는 것이 좋습니다. 1.0에서 1.3까지는 1.0에서 작동하는 일부 기능이 1.3에서 제거되지 않았기 때문에 작동하지 않습니다 (1.1에서는 비추천되고 1.2에서는 비추천되고 1.3에서는 제거됨). auth.user에 외래 키가있는 모델에 메시지를 저장하는 것이 그 중 하나라고 생각합니다. 이제 메시지는 대신 모든 세션 기반입니다. 또한 1.3에서 csrf-token을 사용해야한다고 생각합니다. 이것은 1.2 IIRC에 추가되었으며 1.4에서 의무적으로 적용됩니다. – kaleissin