【发布时间】:2016-06-20 14:09:06
【问题描述】:
有没有办法做一个组合过滤器来查看一个对象是否存在以及它是否存在是否处于活动状态?
试图找出用户是否存在类似模型实例,以及类似模型实例是否处于活动状态。
我正在使用它来更改初始 css 的显示。如果用户喜欢它,那么它将显示一个绿色的类似按钮或其他表示这一点的东西。 ajax 然后更新计数器/切换 css 类,视图创建一个喜欢或切换现有喜欢的状态。只是想知道是否有更简洁的方法来检查这种情况。
当前过滤/方法:
likes = article.articlelike_set.filter(is_active=1)
users_like = likes.filter(user=request.user)
user_liked_article = users_like[0].is_active if users_like.exists() else False
like 应用中的like/article 模型关系:
class BaseLike(models.Model):
user = models.ForeignKey(User)
created = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
class Meta:
abstract = True
class ArticleLike(BaseLike, models.Model):
article = models.ForeignKey('article.Article')
....
文章型号:
class ArticleBaseFields(models.Model):
created = models.DateTimeField(default=timezone.now)
...
slug = models.SlugField(unique=1)
class Meta:
abstract = True
class Article(ArticleBaseFields,models.Model):
body = models.TextField(max_length=5000)
publisher = models.ForeignKey('userprofiles.ArticlePublisher', related_name="publisher")
#Publisher is a profile with a OneToOneField to auth.models User model
...
【问题讨论】:
-
请提供更多上下文,例如不同模型上的字段,例如
Article、Likes、Users,以及它们是如何相互关联的。
标签: python django django-views django-orm django-filter