Djangoda favorilere ekle sistemi

merhaba.djangoda favorilere ekle sistemi yapmak istiyorum.bir kismini tamamladim:
views.py:

def favoritview(request,id):
    favelan = get_object_or_404(elan,id = id)
    if request.method == 'POST':
        favelan.favorit.add(request.user)
    return redirect("/")

ama bunu nasil tek tikla yapacagimi,favoriler sekmesinde ilgili kullaniciya nasil gosterecegimi bilmiyorum.yardimci olursaniz sevinirim.

Tek tıkla eklemek için Ajax kullanacaksın. Kullanıcıya favorites field i ekle (ManytoMany). Sonra favoriler sayfasında hepsini göstereceksin. Anlayamazsan bana telegram dan yaz.

Tamam

Aslinda aklima soyle bir yol geldi:models.pyde favori adli bir yer olusturucaz boolean filed olucak ve defaultu false olucak.kullanici favori butonuna tikladiginda viewde kontrol yapilacak eger bu kullanici icic modelsdeki favori yeri false ise true yapicak true ise false yapicak(burayi nasil yapacagimi bilmiyorum).daha sonra favori ilanlar sekmesinde bu kullanici icin favori yeri true olan tum ilanlar listelenicek(burayida nasil yapa bilecegimi bilmiyorum).yardimci ola bilirseniz sevinirim.olamasanizda caniniz sag olsun

Bakın, aşağıdaki kodu User modeline ekleyin.

favorites = models.ManytoManyField(MyModel)
# Buradaki MyModel sizin modeliniz, kullanıcı
# neyi favori yapacaksa onun modelini yazın.

User modeline eklemeyi de Barış aslan’ın videosunda bulabilirsiniz.

Şimdi, kullanıcıdan favorilere ekleme isteği geldi diyelim, şunu yapıyorsunuz.

# Post değişkeni kullanıcının favorilemek istediği yazı olsun.
request.user.favorites.add(post)

Şimdi kullanıcının favorilerine ekledik. Kullanıcıdan bu isteğin nasıl geleceğini de kısaca anlatayım. Eğer postun sayfasındayken kullanıcı favorilere ekle butonuna basarsa siz javascript ve ajax ile django’ya “kullanıcı postu favorilerine ekleyecek” verisini gönderiyorsunuz. Ve django da yukarıda gösterdiğim işlemi yapacak.

Yok, böyle olmaz.

1 Beğeni
'User' object has no attribute 'favorit'

diye hata veriyor.
views.py:

def favoritview(request,id):
    favelan = get_object_or_404(elan,id = id)
    request.user.favorit.add(favelan)
    return redirect("/")

not:(djangonun kendi user modelini kullaniyorum)

releated nameyi favorit yapdim duzeldi ama simdide boyle diyor:

no such table: elan_elan_favorit

tamam onuda cozdum

Cok tesekkur ederim.artik dogru duzgun calisiyor.geriye bir tek sey kaldi:viewsde if kontrolu yapmak.eger ilan kullanicinin favori ilanlarinda var ise silicek yok ise ekleyecek
views.py:


def favoritview(request,id):
    favelan = get_object_or_404(elan,id = id)
    request.user.favorit.add(favelan) #if request.user.favorit.exists(favelan) dogrumu bilmiyorum
    return redirect("/")

ama mevcut olup olmadiginin if kontrolunu nasil yapacagimi bilmiyorum.bu konuda da yardimci olursaniz cok sevinirim.