Python Django Yardım - R10.net
15
Bildirimler TÜMÜNÜ OKUNDU SAY
Yükleniyor, lütfen bekleyiniz..
Giriş Yap Kayıt Ol
  • 11-07-2020, 17:00:32
    #1
    Selamlar,
    Django'ya yeni başladım ve kendimi bayağı ilerlettim sayılır ama bu konuda takıldım kaldım.

    Aşağıda şekilde bir modelim var, alanları doldurduktan sonra gönder tuşuna bastığında otomatik olarak kod vermesini istiyorum ve bu işlemi her yeni veri girişinde yapmasını istiyorum. Sistemin otomatik olarak verecek olduğu kod ise AAA dan başlamak üzere sırayla gidecek. Mesela ilk veri girişim oluşturduğumda sistem bana AAA’yı verecek daha sonrakilerde AAB AAC AAD olmak üzere devam edecek. Ayrıca daha önce alınmış kod sistemden silinmiş ise o kodu sistem bana vermeyecek. Örnek AAC kodunu sistemden aldım ve sonradan sildim sistem bana bu kodu tekrar vermeyecek en son vermiş olduğu koddan devam edecek. AAA’dan başlayıp ZZZ’ye kadar kod oluşturulacak kodu itertools ile buldum ancak yukarıdaki aşamalarda takıldım kaldım.
    Nasıl bir yol izlemeliyim?
    Ücretli veya ücretsiz yardımcı olabilir misiniz


    KOD YAPISIDA AŞAĞIDAKİ GİBİDİR.

    class Anakod(models.Model):
    """Anakod used for excavations"""
    anakod_buluntu_yeri_id = models.PositiveSmallIntegerField(null=False, blank=False)
    anakod = models.CharField(max_length=200)
    buluntu_yeri = models.CharField(max_length=200)
    mezar_no = models.CharField(max_length=40)
    buluntu_yili = models.DateTimeField('date published')
    seviye = models.CharField(max_length=40, blank=True)
    plankare = models.CharField(max_length=40, blank=True)
    tabaka = models.CharField(max_length=100, blank=True)
    aciklama = models.TextField(blank=True)
    durum = models.BooleanField()
    
    def __str__(self):
    return self.anakod
    
    def generate_anakod(self):
    exclude_char = re.compile('(X|Q|W)')
    prod = product(exclude_char.sub('', ascii_uppercase), repeat=3)
    
    for item in prod:
                  print(''.join(item))
  • 11-07-2020, 17:11:23
    #2
    kodlama kısmını yapamam şuan ama şöyle olabilir hocam.
    Örneğin bir listeye tüm bu kombinasyonları ekleyin. Sonra 0.indextekini alsın. zaten aaa dır. daha sonra onu listeden kaldırırsanız sıradaki aab olur. bu sayede daima listedeki 0indexi al sonra sil al sil şeklinde yapabilirsin. yada 2. olarak her aldığı değeri başka listeyeeklesin. sonra ilk fonksyionda değer üretin ve 2.listedeki değerlerle kontrol ettirin.listede olmayana kadar for döngüsünü çalıştırır.( içiçie for ile değerleri oluşturabilirsiniz)
    Gmail Hesapları Temin Edilir !
  • 11-07-2020, 19:13:53
    #3
    aslında şöyle mantıkla yapabileceğinizi düşünüyorum son eklenen kayıttaki ilgili alandaki değeri alıp bir sonraki değeri ister itertools kütüphanesi ile isterseniz de form ekranında javascript kodu ile yapabilirsiniz hiç kayıt yok ise AAA olarak kayıt edebilirsiniz isterseniz hem de unique kontrolü yapabilirsiniz (fakat silinen kayıt olacağı için önermiyorum)
    aslında 5. 10. yada 15. önceki kayda bakmayacak sadece son kayda göre string değerini arttıracak hem ilgili form ekranında o ilgili field'i ekleyerek ve field'i non-editable yaparak düzgün olarak yaptığını teyit edebilirsiniz

    javascript ile öneririm
  • 11-07-2020, 21:25:18
    #4
    Cevabınız için teşekkür ederim. Listeye bütün kombinasyonları yazarsam 12167 adet kombin çıkıyor bunu da listeye eklemek baya uğraştırır gibime geliyor.

    Prens55 adlı üyeden alıntı
    kodlama kısmını yapamam şuan ama şöyle olabilir hocam.
    Örneğin bir listeye tüm bu kombinasyonları ekleyin. Sonra 0.indextekini alsın. zaten aaa dır. daha sonra onu listeden kaldırırsanız sıradaki aab olur. bu sayede daima listedeki 0indexi al sonra sil al sil şeklinde yapabilirsin. yada 2. olarak her aldığı değeri başka listeyeeklesin. sonra ilk fonksyionda değer üretin ve 2.listedeki değerlerle kontrol ettirin.listede olmayana kadar for döngüsünü çalıştırır.( içiçie for ile değerleri oluşturabilirsiniz)
  • 11-07-2020, 21:38:23
    #5
    karabektas adlı üyeden alıntı
    Cevabınız için teşekkür ederim. Listeye bütün kombinasyonları yazarsam 12167 adet kombin çıkıyor bunu da listeye eklemek baya uğraştırır gibime geliyor.
    İçiçe for ile eklemek varken elle eklenir mi hocam
    Gmail Hesapları Temin Edilir !
  • 11-07-2020, 21:49:31
    #6
    Sabahtan beri ekrana bakmaktan gözüm dönmüş iç içe for döngüsünü bir bakayım.
    Prens55 adlı üyeden alıntı
    İçiçe for ile eklemek varken elle eklenir mi hocam