django - through - El objeto ''QuerySet'' no tiene ningún atributo ERROR, tratando de obtener datos relacionados en los campos ManyToMany
reverse many to one django (2)
QuerySet.get()
devolverá un único modelo según los criterios que haya pasado, o generará una excepción.
tengo los siguientes modelos:
class Tag(models.Model):
tag_name = models.CharField(max_length=250)
tagcat = models.ForeignKey(''TagCat'')
class Subject(models.Model):
user = models.ManyToManyField(User)
tags = models.ManyToManyField(Tag)
class TagCat(models.Model):
cat_name = models.CharField(max_length=100)
Entonces tengo un tema, eso tiene una etiqueta. Quiero hacer un bucle con los temas y sus etiquetas apropiadas, así que estoy tratando de construir la vista correcta. Hasta ahora, tengo:
def home(request):
user1 = Subject.objects.filter(id=1)
print(user1.tags.all())
Esperaría obtener las etiquetas del usuario a través de esta declaración de impresión, pero en su lugar obtengo un error
El objeto ''QuerySet'' no tiene atributos ''tags''
¿Cómo obtendría los objetos ''Subject'' con sus respectivas etiquetas y los pasaría a la plantilla?
(Idealmente, todas las asignaturas. Lo hice con solo una aquí, para simplificar el proceso de solución de problemas)
filter
devuelve un QuerySet
(como puede haber adivinado), desea get
lugar
user1 = Subject.objects.get(id=1)
Si el Subject
no existe, obtendrá una excepción Subject.DoesNotExist
. También está el atajo get_object_or_404
en django.shortcuts
que es útil si simplemente está tomando un objeto que se va a mostrar de alguna manera y desea devolver un 404 si no está disponible.