- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在我的项目中实现 django-badges,并且我正在尝试为填写个人资料字段授予自传徽章,但从未授予任何徽章(已确认,因为数据库中未创建任何内容)。但是,如果我创建一个 View ,使用 get_progress() 或 get_progress_percentage() 返回用户的徽章进度,则表明满足了所需的条件。例如,我的测试 View 如下所示:
#views.py
def badges(request, name):
user = get_object_or_404(User, username=name)
badge = Badge.objects.get(id='autobiographer')
progress = badge.meta_badge.get_progress(user)
progress_percentage = badge.meta_badge.get_progress_percentage(user)
return render('badges.html', {'badge': badge, 'progress': progress, 'progress_percent': progress_percent}, request=request)
#badge_template.html
{{ progress }}
<br />
{{ progress_percent }}
#meta_badges.py
class Autobiographer(badges.MetaBadge):
id = "autobiographer"
model = BaseProfile
one_time_only = True
title = "Autobiographer"
description = "Completed 5 User Profile Fields"
level = "1"
progress_start = 0
progress_finish = 5
def get_user(self, instance):
return instance.user
def get_progress(self, user):
has_avatar = 1 if user.get_profile().avatar else 0
has_city = 1 if user.get_profile().city else 0
has_twitter = 1 if user.get_profile().twitter else 0
has_facebook = 1 if user.get_profile().facebook else 0
has_linkedin = 1 if user.get_profile().linkedin else 0
has_google_plus = 1 if user.get_profile().google_plus else 0
has_tumblr = 1 if user.get_profile().tumblr else 0
return has_avatar + has_city + has_twitter + has_facebook + has_linkedin + has_google_plus + has_tumblr
def check_avatar(self, instance):
return instance.user.get_profile().avatar
def check_city(self, instance):
return instance.user.get_profile().city
def check_twitter(self, instance):
return instance.user.get_profile().twitter
def check_facebook(self, instance):
return instance.user.get_profile().facebook
def check_linkedin(self, instance):
return instance.user.get_profile().linkedin
def check_tumblr(self, instance):
return instance.user.get_profile().tumblr
def check_google_plus(self, instance):
return instance.user.get_profile().google_plus
如果 user1 填写了 5 个个人资料字段,则 example.com/badges/user1 如下所示:
5
100
有人成功使用 django-badges 并知道我缺少什么,或者是否有其他有效的徽章解决方案?它看起来很容易使用,但我无法让它工作。
最佳答案
不知道您是否仍在使用 django-badges 或者仍然遇到这个问题,因为该帖子已经发布了一个月。我也在我的项目中使用 django-badges 并且运行良好。
我认为您代码中的问题在于您混合了两个概念:进度数据和赢得徽章的真正标准。仅当您的一位用户填写了徽章所需的全部七个个人资料字段时,该应用程序才会授予他奖励。另一方面,进度仅评估已填充的五个字段。
您可以实现一个类似于 get_progress 的单一检查方法,如果已填充五个或更多字段,则返回 True:
def check_fields(self, instance):
has_avatar = 1 if instance.user.get_profile().avatar else 0
has_city = 1 if instance.user.get_profile().city else 0
has_twitter = 1 if instance.user.get_profile().twitter else 0
has_facebook = 1 if instance.user.get_profile().facebook else 0
has_linkedin = 1 if instance.user.get_profile().linkedin else 0
has_google_plus = 1 if instance.user.get_profile().google_plus else 0
has_tumblr = 1 if instance.user.get_profile().tumblr else 0
fields_filled = has_avatar + has_city + has_twitter + has_facebook + has_linkedin + has_google_plus + has_tumblr
return fields_filled >= 5
希望这有帮助!
关于python - 为什么 django-badges 在满足标准时不授予徽章?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14733878/
我们可以使用GCM通知作为APNS徽章图标在iPhone应用程序上显示徽章编号吗 由于我无法使用GCM进行设置。 我推荐this link这说 Parameter Platform
注册推送通知时,我没有启用角标(Badge)警报... - (void)registerForPushNotifications { UIRemoteNotificationType noti
我向用户推送了一个没有角标(Badge)键或角标(Badge) = 0 的通知负载,通知无法从通知中心删除。这是我的有效负载: { "aps" : {"alert" : "bala bala
我想在用户每次打开应用程序时清除应用程序图标角标(Badge)。在我的应用程序中,我使用以下代码清除角标(Badge): [UIApplication sharedApplication].appli
在第二版中我可以使用 badge badge-important 我发现 .badge 元素不再具有上下文(-success、-primary 等)类。 如何在版本 3 中实现同样的效果? 例如。我希
Yii2 Twitter Bootstrap 徽章 颜色不变。 In browser source i cant find badge-success, badge-danger e.t.cclass
我目前正在设计一个教育网站。 为此,我们需要根据用户的事件(例如stackoverflow)为他们分配一些徽章。 我正在为此寻找框架。任何人都有任何想法,如何做到这一点? table 设计等 我可以想
我正在制作一个应用程序,该程序显示自从两个人建立关系以来的天数。我想在应用程序图标徽章上显示天数。我知道一旦用户离开应用程序该怎么做,但是我想每天更新图标徽章,即使该应用程序未在后台打开或在后台运行也
我是 iPhone开发的新手。我只是创建像聊天应用程序之类的应用程序。很简单,我使用JSON解析方法,并通过PHP从服务器调用数据并将其发送回给他们。 所以我有一个UIButton我想在此上设置徽章U
我想在控制SplitView中弹出框的UIBarButtonItem上添加徽章 这段代码什么都不做: - (void)splitViewController: (UISplitViewControll
也许这是一个简单的问题... 我有一个带有3个ViewController的3个选项卡栏项的UITabBarController。 我能够将Badge(通过使用setBadgeValue)添加到选项卡
我正在开发 react-native iOS 中的聊天应用程序。我想在收到通知、应用程序被杀死或用户强制退出时在主应用程序图标上进行标记增量。当应用程序处于后台模式时,它运行良好。但是 didRece
当我收到消息时,我会将用户名和未读消息计数写入 CoreData。并借助此功能: func unreadMessagesCountBadge(cell: onlineUserCell, forCoun
这是我的代码,我将日期放在应用程序角标(Badge)中。我想知道如何每天重新加载这个号码而不进入应用程序重新加载它。提前致谢! NSDate *today = [NSDate date]; NSCal
我有一个带有标签栏 Controller 的应用程序。这些 View 之一是 TableView 。有一种方法可以在标签栏中设置此 View 的角标(Badge)。这有效......但只有当用户触摸此
在我的数据库中,我将传递的消息计数存储在一个表字段中。对于我发送到特定设备的每条消息,我都会增加这个值。 当设备收到带有角标(Badge)设置的 payloa 时,它会在应用程序图标上显示红色圆圈。
我的应用程序包含许多嵌入式练习,这些练习会在应用程序使用期间显示给用户。我计划发布我的应用程序的定期更新,其中包含额外的练习。每次(标准应用程序商店应用程序)更新后,我想在应用程序图标上添加一个角标(
我试图了解当用户的网络连接特别差或没有网络连接时,iOS 上远程通知的最佳实践。 场景是这样的: 用户会收到一些远程通知,并在将来的某个时候打开应用程序。此时,我不想让服务器尽快知道角标(Badge)
我有一个函数,可以在单元格上添加角标(Badge): unreadMessagesCountBadge(cell, forCount: messagesCount) 但我不知道,如何检测我需要添加此角
我的问题的根源是我无法在真实设备上测试推送消息,因为这个问题似乎是 Xcode bug,但这不是现在的主题。我只是添加这个来回答为什么我不能正常测试我的实现。 因此,我使用 OneSignal SDK
我是一名优秀的程序员,十分优秀!