- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在此示例中,我尝试使用 mixin 在“PropertyListing”的 ListView 上呈现标签之前,我已经成功实现了 django-taggit:
控制台不断告诉我:
NameError: name 'Tag' is not defined
**问题显然来自 views.py 第 4 行。
我无法从像“PropertyListing”这样的模型中导入“Tag”,因为它是第三方库。
我试过导入
from taggit.managers import TaggableManager
在 views.py 但同样的错误。
我正在使用 django 2.1 和 django-taggit 1.1.0
下面是代码:
模型.py
from taggit.managers import TaggableManager
class City(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=250, unique=True)
tags = TaggableManager()
class Meta:
verbose_name_plural = 'Cities'
def __str__(self):
return self.name
class PropertyListing(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=250, unique=True)
price = models.DecimalField(max_digits=10, decimal_places=2)
description = models.TextField(max_length=1000)
address = models.CharField(max_length=1000)
is_active = models.BooleanField(default=False)
city = models.ForeignKey(City, on_delete=models.CASCADE, related_name='property_listings')
class Meta:
verbose_name_plural = 'Properties Listings'
def __str__(self):
return self.name
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(PropertyListing, self).save(*args, **kwargs)
def get_absolute_url(self):
return reverse('core:property_detail', kwargs={'pk': self.pk})
View .py
class TagMixin(object):
def get_context_data(self, **kwargs):
context = super(TagMixin, self).get_context_data(**kwargs)
context['tags'] = Tag.objects.all()
return context
class PropertyListingView(TagMixin, ListView):
model = City
model_type = PropertyImage
queryset = PropertyListing.objects.all()
context_object_name = 'properties'
template_name = 'core/property-listing.html'
def get_context_data(self, *args, **kwargs):
context = super(PropertyListingView, self).get_context_data(**kwargs)
context['cities'] = City.objects.all()
context['properties'] = PropertyImage.objects.select_related('image_property_listing')
return context
class CityTaggedView(TagMixin, ListView):
model = City
context_object_name = 'cities'
template_name = 'core/city-tagged.html'
def get_queryset(self):
return City.objects.filter(tags__slug=self.kwargs.get('slug'))
网址.py
path('', PropertyListingView.as_view(), name='property_listing'),
path('tag/<slug:slug>/', CityTaggedView.as_view(), name='city_tagged')
任何帮助将不胜感激。我不明白为什么会这样。
最佳答案
您只需导入标签
模型,例如:
# app/views.py
# import the <b>Tag</b> class
from taggit.models import <b>Tag</b>
class TagMixin(object):
def get_context_data(self, **kwargs):
context = super(TagMixin, self).get_context_data(**kwargs)
context['tags'] = <b>Tag</b>.objects.all()
return context
# ...
毕竟,您的代码使用了 Tag
,但您从未在 views.py
文件中定义它。这与 Django 或 taggit 本身没有太大关系,只是 Python 不理解你对 Tag
的意思。
关于python - 为什么一旦我使用 Tag.models.all() Taggit (Django-Tag) 就不能工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56819144/
我有以下型号 class Entry(models.Model): user = models.ForeignKey(User) created = models.DateTimeFi
我正在使用 django-taggit 对于我的一个项目,根据文档,我在我想在其中使用标签/关键字的模型中执行了以下操作。 模型.py from taggit.managers import Tagg
我正在尝试通过 taggit 和 taggit 序列化程序在我的模型中添加标签。我在 Rest 框架中制作 API。我按照说明操作( https://github.com/glemmaPaul/dja
我正在尝试通过 taggit 和 taggit 序列化程序在我的模型中添加标签。我在 Rest 框架中制作 API。我按照说明操作( https://github.com/glemmaPaul/dja
例如: tags_input = "hello, foo, bar, ok" tagset = tag_parser(tags_input) # {'bar', 'foo', 'hello', 'ok
我正在使用 django-taggit 并且在尝试过滤关系时遇到了一个问题。 有以下型号: class Artist(models.Model): tags = TaggableManage
在这里发疯... 在外壳中,我可以执行以下操作: product.tags.add("a_new_tag") 将标签添加到数据库中,并且与产品的标签关联正常工作。 (即,当我执行 Product.ob
我可以在模板中像这样一一获取所有标签的名称 {% for tag in blog.tags.all %} {{ tag.name }} {% endfor %} 我可以从这样的表单中获取输入
我现在正在构建一个基本的时间记录应用程序,我有一个使用 django-taggit 的 todo 模型。我的 Todo 模型如下所示: class Todo(models.Model): pr
我正在使用 django-taggit在我的一个项目上,我能够保存标签并将其与特定记录联系起来。现在的问题是如何显示与每条记录相关的标签? 例如,在我的页面上,我想显示一个包含标题和内容的记录,然后在
假设我有一个模型: class Entry(models.Model): ... tags = TaggableManager() 当我在模板中迭代 Entry.objects.all
这是一个模型类 class ModelName(models.Model): (...) pasta = TaggableManager(verbose_name=u'Pasta') 和一个表
假设我有三个标签。我想显示有多少对象链接到它。像这样: 苹果 (3) 橙色 (0) 香蕉 (5) 我如何使它以最简单的方式工作,最好不要在数据库中创建新属性? 我猜我需要遍历所有标签,计算它们,然后把
我正在使用 Django 3.2 和 django-taggit 1.4 我有这样一个模型: class Meal(models.Model): # some fields is_co
有没有人在 haystack 中使用 Django taggit?我们如何使标签字段可被 haystack 索引? 我试过了: class EventIndex(indexes.SearchIndex
假设您有一个数据库,其中包含在 Djano 应用程序后面运行的用户对象并且您想使用 django-taggit 来标记用户对象,以便您可以使用一些方便的过滤来检索子组。 此外,您还有一个仪表板,您希望
我使用 django-taggit-autocomplete,但是在进行方案迁移时,出现错误 ! Cannot freeze field 'main.hotels.tags' ! (this fi
我有一个使用 django-taggit 的模型。我想执行向该模型添加标签的南方数据迁移。但是,.tags 管理器在 South 迁移中不可用,您必须使用 South orm['myapp.MyMod
是否可以通过夹具初始化标签数据,如下所示; [{ "fields": { "name": "tag1" }, "model": "taggit.Tag",
这可能是个愚蠢的问题,但我下载了 Django-taggit 并且文档中提到为我想要关联的每个模型添加一个 TaggableManager 管理器。这很好,但是我“pip-ed”的来自外部应用程序的模
我是一名优秀的程序员,十分优秀!