Это мой models.py:
class Role(models.Model):
type= models.CharField(max_length=30)
class Profile(models.Model):
role = models.ManyToManyField(Role, blank=True)
def is_composer(self):
return self.role['Composer']
Это мой view.py:
from .models import Profile, Role
def profiles_filtered(request, type):
model = Profile
if type == 'composers':
queryset = Profile.objects.filter(is_composer = True)
My urls.py:
urlpatterns = [
path('profiles/<str:type>/', views.profiles_filtered, name="profiles"),
]
И мой шаблон:
<li><a href="{% url 'profiles' 'composers' %}"> Composers</a></li>
Когда я нажимаю на ссылку, я попадаю на /profiles/composers/
, в котором должны быть перечислены все профили, содержащие роль «Composer». Я получаю
FieldError at /profiles/composers/
Cannot resolve keyword 'is_composer' into field.
Тип Role
содержит много ролей, одна из которых - «Composer». Как я могу перечислить только профили, которые содержат роль «Composer»?
дополнение
Если я использую
if type == 'composers':
queryset = Profile.objects.filter(role == 'Composer')
, я получаю
NameError at /profiles/composers/
name 'role' is not defined