I have problem when trying to override the 'tags' field displaying. I am using django-taggit
and django-taggit-labels
.
Here is the code:
# models.py
class Cat(models.Model):
name = models.CharField(max_length=30)
tags = TaggableManager()
def __str__(self):
return self.name
# admin.py
from django import forms
from taggit_labels.widgets import LabelWidget
class ProductAdminForm(forms.ModelForm):
class Meta:
model = Cat
fields = ['name','tags']
widgets = {
'tags': LabelWidget(),
}
@admin.register(Cat)
class CatAdmin(admin.ModelAdmin):
form = ProductAdminForm
I've taken the approach from
https://github.com/bennylope/django-taggit-labels/issues/16
But that doens't work because of error in
http://127.0.0.1:8000/admin/exp/cat/1/change/
page.
And the page was talking
'list' object has no attribute 'select_related'
Here is also one more error information.
And the message error in console:
Internal Server Error: /admin/exp/cat/1/change/
Traceback (most recent call last):
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\core\handlers\base.py", line 145, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\core\handlers\base.py", line 143, in _get_response
response = response.render()
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\response.py", line 106, in render
self.content = self.rendered_content
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\response.py", line 83, in rendered_content
content = template.render(context, self._request)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\backends\django.py", line 61, in render
return self.template.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 171, in render
return self._render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 163, in _render
return self.nodelist.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 163, in _render
return self.nodelist.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 163, in _render
return self.nodelist.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\defaulttags.py", line 209, in render
nodelist.append(node.render_annotated(context))
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\loader_tags.py", line 188, in render
return template.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 173, in render
return self._render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 163, in _render
return self.nodelist.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\defaulttags.py", line 209, in render
nodelist.append(node.render_annotated(context))
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\defaulttags.py", line 209, in render
nodelist.append(node.render_annotated(context))
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\defaulttags.py", line 309, in render
return nodelist.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\defaulttags.py", line 309, in render
return nodelist.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 993, in render
return render_value_in_context(output, context)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\template\base.py", line 972, in render_value_in_context
value = str(value)
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\utils\html.py", line 388, in <lambda>
klass.__str__ = lambda self: mark_safe(klass_str(self))
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\forms\boundfield.py", line 33, in __str__
return self.as_widget()
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\django\forms\boundfield.py", line 93, in as_widget
renderer=self.form.renderer,
File "C:\Users\lyf20\Documents\Student\Django\proj2\venv\lib\site-packages\taggit_labels\widgets.py", line 68, in render
current_tags = [o.tag for o in value.select_related("tag")]
AttributeError: 'list' object has no attribute 'select_related'
SOLUTION
I've only installedtaggit-labels
directly from Git. I followed by instruction from pip install from git repo branch. The Problem was that command
pip install taggit-labels
is downloading old-versioned resource.
I really hope this post will help someone:^)