folder Tahribat.com Forumları
linefolder Python
linefolder Python-Django Calculated Fields Konusu



Python-Django Calculated Fields Konusu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    selam arakdaşlar

    https://www.tahribat.com/forum/pythonda-tasinabilir-proje-yapmak-241015

    burada problemi mi aştım istediğim gibi çözebildim.

     

    django modellerinden bir problem yaşıyorum. yapmak istediğimin sql karşılığı şu

    select * , ( run_count - success_count ) as error_count  from reports

    biraz araştırdım bir kaç konu buldum ama çalıştıramadım en son şu durumda bıraktım 

    error_count değerim db kayıtlı değil çağırırken hesaplansın istiyorum

    class Reports(models.Model):
        .......
        run_count = models.IntegerField(null=True)
        success_count = models.IntegerField(null=True)
        ......
        def error_count(self):
            return self.run_count - self.success_count


    ve

    class Reports(models.Model):
        .......
        run_count = models.IntegerField(null=True)
        success_count = models.IntegerField(null=True)
        ........
    
        @property
        def error_count(self):
            return self.run_count - self.success_count

     

    bunları denedim fakat hep aşağıdaki hatayı aldım

    Cannot resolve keyword 'error_count' into field. Choices are:

    daha önce böyle bişey yapmış yada çözümü bilen varmı?

    wert tarafından 29/Eyl/19 15:07 tarihinde düzenlenmiştir

    |sadece aptalların başarısı ders notu ile ölçülür|
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TheM4D
    TheM4D's avatar
    Kayıt Tarihi: 26/Mart/2016
    Erkek

    hocam error_count'un cagirildigi yeri atabilir misin? cagirildigi yerde bir hata olmali cunku ustteki 2 ornek de dogru diye biliyorum.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek
    def most_error_job(request):
        liste=list()
        for row in list(Reports.objects.values('name','error_count').order_by('-error_count')[:20]):
            liste.append(list(row.values()))
        return JsonResponse(liste, safe=False)

     

    bunu yaptığımda çalışıyor views.py de

    def most_error_job(request):
        liste=list()
        for row in list(Reports.objects.values('name','run_count').order_by('-run_count')[:20]):
            liste.append(list(row.values()))
        return JsonResponse(liste, safe=False)
    wert tarafından 29/Eyl/19 16:16 tarihinde düzenlenmiştir

    |sadece aptalların başarısı ders notu ile ölçülür|
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    @HolyOne abi insert code block da python ekleyince js hatası veriyor


    |sadece aptalların başarısı ders notu ile ölçülür|
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RouLette
    RouLette's avatar
    Kayıt Tarihi: 18/Temmuz/2005
    Erkek

    Merhabalar,

    Bu tür işlemleri ORM tabanında yapmak istiyorsanız aggregate fonksiyonlarını kullanmalısınız. 

    from django.db.models import F
    Reports.objects.aggregate(error_count=F('run_count') - F('success_count')).values('columns...', 'error_count')
Toplam Hit: 1607 Toplam Mesaj: 5
sql python model django