-
Notifications
You must be signed in to change notification settings - Fork 767
Open
Description
A always gat empty queryset for my filter. I printed sql request and see that it pass profession title instead slug. I don't know why and how can I fix int. Now I use CharFieltd to filter, but it has no error messages for invalid slugs.
Also if I use field_name="professions" it accept only integers.
Here is my code
from django.db import models
from model_utils.models import TimeStampedModel
from utils.validators import validate_telegram_url
class ChannelToSubscribe(TimeStampedModel):
title = models.CharField(
max_length=255,
)
channel_url = models.URLField(
validators=[validate_telegram_url],
unique=True,
)
professions = models.ManyToManyField(
"common.Profession",
db_index=True,
related_name="channels_to_subscribe",
blank=True,
)
def __str__(self):
return f"{self.title}"
from django_filters import ModelChoiceFilter
from django_filters.rest_framework import FilterSet
from common.models import Profession
from subscriptions.models import ChannelToSubscribe
class ChannelToSubscribeFilter(FilterSet):
profession_slug = ModelChoiceFilter(
field_name="professions__slug",
queryset=Profession.objects.filter(is_visible=True),
to_field_name="slug",
required=True,
)
class Meta:
model = ChannelToSubscribe
fields = (
"profession_slug",
)Metadata
Metadata
Assignees
Labels
No labels