Bir modele filtre uygulamak ve aramaya cevap vermek için bir django sorgusu kullanıyorum. İşte Django Filter with AND
görünümleriif user_search != '' and (start_date != '' and end_date != ''):
items = Order.objects.filter(
Q(client__email__iexact=user_search) , Q(created_on__range=(start_date, end_date))
)
print "items ", items
Django filtresi tarih aralığına düşen kullanıcının aradığı e-posta adresini, yazdırmak olmasıdır. Ama kodu da araması yapılmamıştır e basar ama tarih aralığına İşte
içine düşen yaşıyorum modeli
class Order(models.Model):
client = models.ForeignKey(User, related_name = "order_user")
order_number = models.CharField(max_length = 12)null=True)
terms_and_conditions = models.BooleanField(default=False)
order_status = models.CharField(max_length = 20, choices = ORDER_STATUS, default = "new")
created_on = models.DateTimeField(auto_now_add = True)
edited_on = models.DateTimeField(auto_now_add = False)
def __unicode__(self):
return self.order_number
Bunu Django 1.8'de yeniden oluşturamıyorum. İki 'Q' args sahip' '' '' '' '' '' '' '' '' ('' client '' (client__email__iexact = user_search) & Q (created_on__range = (start_date, end_date) ''i kullanmaya eşdeğer olmalıdır. Kodunuz 'Order.objects.filter (client__email__iexact = user_search, created_on__range = (start_date, end_date)) için basitleştirilebilir.'. – Alasdair
@Alasdair Kullanılmış & Operatör ama yine de – uche
için aramadığım e-posta adresini yazdırıyor. Varolan kod **, tarih aralığın dışındaysa e-posta adreslerini döndürmemelidir. Sorunu yeniden oluşturabilen bazı kodları ve aldığınız sonuçları gösterirseniz yardımcı olabilir. Belki de (örneğin, kodu değiştirdikten sonra sunucuyu yeniden başlatmadınız) kod – Alasdair