Django электронной коммерции Wishlists список меню в выпадающем меню на странице продукта в настоящее время вошел пользователь, чтобы выбрать из добавить продукт в не работает

Я пытаюсь добиться того, чтобы дать возможность пользователю, вошедшему в систему в данный момент, добавить товар в определенный список желаний, который он составил ранее. Для этого я хочу, чтобы была кнопка выпадающего меню со списком всех текущих списков желаний пользователя с чекбоксом.

Я попытался сделать queryset на поле формы, но он не позволяет мне фильтровать текущего вошедшего пользователя, он дает мне ошибку "запросы не определены".

Не работает, потому что я считаю, что вы не можете использовать фильтр для фильтрации пользователей с помощью ModelForm.

Какой есть другой способ сделать это?

модель


class Wishlist(models.Model):

    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True)

    title = models.CharField(max_length=50, null=True,blank=True)
    slug = models.SlugField(max_length=50, null=True,blank=True)

    wishlist_cover_image = models.ImageField(upload_to='media/WISHLIST_COVER_IMAGES/', null=True,blank=True)

    description = RichTextField(max_length=500, null=True,blank=True)

    products = models.ManyToManyField(Product, null=True,blank=True)

    date_created = models.DateTimeField(auto_now_add=True)
    date_updated = models.DateTimeField(auto_now_add=False ,null=True,blank=True)


    def get_absolute_url(self):
        return reverse('ecommerce:wishlist', args=[self.slug])


    def __str__(self):
        return self.title


формы

Это первая попытка, где я попытался сделать фильтрацию пользователей традиционным способом - используя "requset.user", но получил ошибку "запрос не определен".

class AddToWishlistForm(forms.ModelForm):

    wishlists = CustomWLMenu(queryset=Wishlist.objects.filter(user=request.user), widget=forms.CheckboxSelectMultiple)

    class Meta:
        model = Profile
        fields = ['wishlists']

После поиска решений я наткнулся на этот метод - и он все еще не работает. Он работает, но извлекает все списки желаний, а не текущего вошедшего пользователя, как показано ниже:

enter image description here

class CustomWLMenu(forms.ModelMultipleChoiceField):

    def label_from_instance(self, user):

        return "%s" % user      

class AddToWishlistForm(forms.ModelForm):

    wishlists = CustomWLMenu(queryset=Wishlist.objects.filter(), widget=forms.CheckboxSelectMultiple)

    class Meta:
        model = Profile
        fields = ['wishlists']

Спасибо за ответ.

Вернуться на верх