У меня возникла проблема с получением номера списка желаний и его отображением?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 У меня возникла проблема с получением номера списка желаний и его отображением?

Сообщение Anonymous »

В дальнейшем такая ошибка...
У меня проблемы с получением количества лайков для товаров и удалением лайков из списка избранных.
лайки корректно в базе данных (добавление в избранное) но я не знаю, как получить их количество и сделать его динамическим в кодах JavaScript от Ajax.
Можете ли вы посмотреть мои коды и дать мне необходимые рекомендации, что мне следует добавить или удалить? спасибо!
favorite.py
from apps.comment_scoring_favorites.models import Favorite
class favoriteProduct:
def __init__(self,request) -> None:
self.session=request.session
favorite_product=self.session.get('favorite_product')
if not favorite_product:
favorite_product=self.session['favorite_product']=[]
self.favorite_product=favorite_product
self.count=Favorite.count_favorites_by_session()
def __iter__(self):
favorite_product=self.favorite_product.copy()
for item in favorite_product:
yield item
def add_to_favorite_product(self,productId):
productId=int(productId)
if productId not in self.favorite_product:
self.favorite_product.append(productId)
self.count=Favorite.count_favorites_by_session()
self.session.modified=True

models.py
from middlewares.middleware import RequestMiddleware
class Favorite(models.Model):
product=models.ForeignKey(Product,on_delete=models.CASCADE,related_name='favorite_product',verbose_name='product')
favorite_user=models.ForeignKey(CustomUser, on_delete=models.CASCADE,related_name='favorite_user1',verbose_name='user favorite')
register_date=models.DateTimeField(auto_now_add=True,verbose_name='register date')
def __str__(self) -> str:
return f"{self.product} - {self.favorite_user}"
class Meta:
verbose_name='favorite'
verbose_name_plural='favorites'
def count_favorites_by_session(self):
request=RequestMiddleware(get_response=None)
request=request.thread_local.current_reques
session=request.session
favorite_product_ids =session.get('favorite_product')
return self.objects.filter(product__id__in=favorite_product_ids).count()

views.py
class ShowFavoriteListView(View):
def get(self,request,*args,**kwargs):
favorite_list=favoriteProduct(request)
context={
'favorite_list':favorite_list,
}
return render(request,'csf_app/partials/create_favorites.html',context)

def statuse_of_favorite_list(request):
favoriteList=favoriteProduct(request)
return HttpResponse(favoriteList.count)

def add_to_favorite(request):
productId=request.GET.get('productId')
product=Product.objects.get(id=productId)
flag=Favorite.objects.filter(
Q(favorite_user_id=request.user.id) &
Q(product_id=productId)).exists()
if(not flag):
Favorite.objects.create(
product=product,
favorite_user=request.user,
)
return HttpResponse('added to favorite lists')
return HttpResponse('it was in favorite')

class UserFavoriteView(View):
def get(self,request,*args,**kwargs):
user_favorite_products=Favorite.objects.filter(Q(favorite_user_id=request.user.id))
return render(request,'csf_app/user_favorite.html',{'user_favorite_products':user_favorite_products})

urls.py
from django.urls import path
from . import views
app_name='csf'
urlpatterns = [
path('add_to_favorite/',views.add_to_favorite,name='add_to_favorite'),
path('user_favorite_list/',views.UserFavoriteView.as_view(),name='user_favorite_list'),
path('statuse_of_favorite_list/',views.statuse_of_favorite_list,name='statuse_of_favorite_list'),
]

myscript.js
statuse_of_favorite_list();
function statuse_of_favorite_list(){
$.ajax({
type:"GET",
url:"/csf/statuse_of_favorite_list/",
success: function(res){
$('#favorite_count_icon').show();
$('#favorite_count').text(res);
}
});
}

function addToFavorite(productId){
$.ajax({
type:"GET",
url:"/csf/add_to_favorite/",
data:{
productId: productId,
},
success: function(res){
alert(res)
statuse_of_favorite_list();
}
});
}

createfavorites.html
{% load render_partial %}
{% load humanize %}
{% block titile %}

{% endblock titile %}
{% block content %}

{% render_partial 'csf:user_favorite_list' %}

{% endblock %}

produc_box.html
{% if product.get_user_favorite %}




{% else %}




{% endif %}
{% endif %}


Подробнее здесь: https://stackoverflow.com/questions/788 ... -show-this
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»