Tôi đang sử dụng django-taggit và tôi gặp phải sự cố khi cố gắng lọc qua các mối quan hệ.django-taggit truy vấn mối quan hệ sâu
Có các mô hình sau:
class Artist(models.Model):
tags = TaggableManager()
class Gig(models.Model):
artist = models.ManyToManyField(Artist)
Những gì tôi muốn đạt được là nhận được tất cả hợp đồng biểu diễn của những người nghệ sĩ (s) có một từ khóa cụ thể.
Tôi nghĩ điều này sẽ được dễ dàng và háo hức đã viết:
Gig.objects.filter(artist__tags__name__in=["rock"])
nào đã cho tôi:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/jonas/.virtualenvs/wsw/lib/python2.7/site-packages/django/db/models/manager.py", line 141, in filter
return self.get_query_set().filter(*args, **kwargs)
File "/home/jonas/.virtualenvs/wsw/lib/python2.7/site-packages/django/db/models/query.py", line 550, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/jonas/.virtualenvs/wsw/lib/python2.7/site-packages/django/db/models/query.py", line 568, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/home/jonas/.virtualenvs/wsw/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1172, in add_q
can_reuse=used_aliases, force_having=force_having)
File "/home/jonas/.virtualenvs/wsw/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1139, in add_filter
process_extras=False)
File "/home/jonas/.virtualenvs/wsw/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1060, in add_filter
negate=negate, process_extras=process_extras)
File "/home/jonas/.virtualenvs/wsw/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1238, in setup_joins
"Choices are: %s" % (name, ", ".join(names)))
FieldError: Cannot resolve keyword 'tagged_items' into field. Choices are: artist, date, id, location, url
Tôi thấy rằng bạn đã đăng bài này vài tháng trước. Bạn đã giải quyết nó chưa? – avatar
Xin lỗi vì trả lời muộn. Tôi chưa bao giờ giải quyết nó. Tôi vừa chuyển sang chế độ gắn thẻ django để tạo ra loại hành vi như vậy. Nhưng tôi phải cảnh báo bạn về cấu trúc API của nó so với django-taggit. Tuy nhiên nó có một số tài liệu công phu tốt. –
Cảm ơn bạn đã trả lời! – avatar