Mesaj gönderme sisteminde "kullanıcı bulunamadı" hatası

Merhabalar,

arama = hesap.find().sort("kullaniciadi")

aktif_kullanici = None

for x in arama:

    if x['kullaniciadi'] == kullaniciadi and x['sifre'] == sifre:

        aktif_kullanici = x

        break

if aktif_kullanici is None:

    print("Giris yapilmadi")

else:

    girisyapildimenu = int(input(f"{aktif_kullanici['kullaniciadi']} kullanıcı adıyla giriş yapıldı. Yapmak istediğiniz işlem nedir? \n 1 => Tüm mesajlarım \n 2 => Mesaj gönder \n 3 => Diğer"))

    if girisyapildimenu == 1:

        print("Mesaj göndermek istediğiniz kişinin kullanıcı adını hazırlayın..")

        time.sleep(4)

        mesajkime = input("Mesaj göndermek istediğiniz kişinin kullanıcı adı: ")

        gidecekmesaj = input("Göndermek istediğiniz mesaj: ")

        gonderilecek_kisi = None

        for x in arama:

            if x['kullaniciadi'] == kullaniciadi:

                gonderilecek_kisi = x

                break

        if gonderilecek_kisi is None:

            print("Kullanıcı bulunamadı")

        else:

            hesap.update({"kullaniciadi", mesajkime}, {'$push': {"mesajlar": gidecekmesaj}})

Yukarıdaki kodda amacım; mesaj gönderme sistemi. Gönderilen mesajı arraylist şeklinde veritabanına kaydediyorum.

Fakat şöyle bir sorun var; Kime gönderileceğini sorduktan ve gönderilecek mesajı sorduktan sonra kullanıcı bulunamadı diyor.

Nasıl çözebilirim?

Değilde

gonderilecek_kisi = mesajkime

Dediğinizi yaptım fakat gönderilecek kişinin kullanıcı adını yanlış yazınca da işleme devam ediyor. Böyle birisi yok demiyor.

@aib hocam bilginiz varsa yardımcı olur musunuz?

Merak ettiğim bir şey var

Bundan dolayı None atıyor çünkü değeri değişmiyor.

Bu kısımda ise gönderilecek kişinin adını aratmamız gerekmiyor mu?

kullaniciadi olarak ne belirleniyorda tekrardan bakıyoruz. Kullanıcı adı bizim adımız değil mi? Mesajın kime gideceğini aratıp o kişi var mı bakmamız gerekiyor.

if x['kullaniciadi'] == mesajkime:

Bunu dene önceki dediğimi kaldırıp.

        if x['kullaniciadi'] == kullaniciadi:

            gonderilecek_kisi = x

            break

Buradaki amaç şu; ilk başta, varsayılan olarak kullanıcı yok diyoruz, sonra ise, input ile girilen kullaniciadi , veritabanınkiyle eşleşirse artık değeri x oluyor.

if x['kullaniciadi'] == mesajkime:
Bunu dene önceki dediğimi kaldırıp.

Bunu da denedim. Yine, kullanıcı olmasına rağmen yok dedi.

for’un içinde bi Printlesene kullanıcıları geliyorlar mı?

Evet.

{'_id': ObjectId('6128f0daa351361dc2e63b26'), 'kullaniciadi': 'ahmet52', 'sifre': '50', 'mesajlar': []}
{'_id': ObjectId('612637aefe9f29109a73b41f'), 'kullaniciadi': 'emir', 'sifre': 'pass', 'mesajlar': []}

emir olarak giris yaptım, ahmet52'ye mesaj yolluyorum.