python - 当显示用户列表时,我希望我最喜欢的用户的行的背景颜色为天蓝色。有没有有效的方法来做到这一点?
问题描述
我有一个问题~!
当显示用户列表时,我希望我最喜欢的用户的行的背景颜色为天蓝色。
但是,在打印用户模型时,为每一行再次运行循环太低效了。
有什么好的方法可以解决这个问题吗?
换句话说,如何在显示用户列表时让我最喜欢的用户行的背景颜色发生变化?
有没有一种好方法可以让我最喜欢的用户的行的颜色不同而无需进行太多查询?
如果有这样的方法
如果你让我知道,我将不胜感激
谢谢
关联
<a class="nav-link" href="/wm/userlist/byajax">User List</a>
下面是相关代码
网址
path('userlist/byajax', views.user_list_for_memo_view.as_view(), name = 'user_list_for_memo'),
看法
class user_list_for_memo_view(ListView):
paginate_by = 10
def get_template_names(self):
if self.request.is_ajax():
return ['wm/_user_list_for_memo.html']
return ['wm/user_list_for_memo.html']
def get_queryset(self):
query = self.request.GET.get('q')
print("query : ", query)
if query != None:
object_list = User.objects.all().filter(Q(username__contains=query)).order_by('-profile__skill_note_reputation');
return object_list
else:
print("user list 출력 확인 ===========================================================")
object_list = User.objects.all().filter(profile__public="yes").order_by('-profile__skill_note_reputation');
print("result : ", object_list)
return object_list
模板(C:\django_inflearn2\wm\templates\wm_user_list_for_memo.html)
{% load static %}
{% if object_list.exists %}
{% for u in object_list %}
<tr>
<td>{{u.id}}</td>
<td id=user_name_{{u.id}}>
<a href="/accounts/user_profile_information_view/{{u.username}}">
{{u.username}}
</a
</td>
{% if u.username == request.user.username %}
<td style="background-color:#DFF3FA">
<input type="text" class="shortcut_subject_input_{{u.id}} form-control" value="{{u.profile.subject_of_memo}}"><br>
<a href="" class="btn btn-outline-primary btn-sm update_memo_subject_btn float-right" data-id={{u.id}}>수정</a>
</td>
{% else %}
<td>
<input type="text" class="shortcut_subject_input_{{u.id}} form-control" value="{{u.profile.subject_of_memo}}">
</td>
{% endif %}
<td>
<a href="" class="btn btn-outline-dark move_to_user_btn btn-sm" id={{u.id}}>Id 선택</a>
</td>
<td>
<a href="" class="btn btn-outline-dark btn-sm copy_to_me_from_user_id_btn" data-id={{u.id}} id={{u.username}}>
copy_to_me
<span class="" id="loading_for_copy_{{u.id}}" role="status" aria-hidden="true"></span>
</a>
</td>
<td>
<button type="button" class="plus_btn_for_user btn btn-outline-dark" data-author_id="{{u.id}}" data-my_id="{{request.user.id}}">
<img src="{% static 'icon/plus.png' %}" alt="">
</button>
</td>
<td id="skill_note_point_{{u.id}}">
{{ u.recommandationuseraboutskillnote_set.count }}
</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="4">
<h4>no article</h4>
</td>
</tr>
{% endif %}
相关表
like table =>
class RecommandationUserAboutSkillNote(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
author_id = models.ForeignKey(User, on_delete=models.CASCADE, related_name="+")
user.profile table =>
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
shortcut_user_id = models.CharField(default="me", max_length=40)
selected_category_id = models.IntegerField(default=1, blank=True)
team = models.ForeignKey(TeamInfo, on_delete=models.CASCADE, null=True, blank=True)
position = models.CharField(max_length=50,default="member")
subject_of_memo = models.CharField(max_length=60)
skill_note_reputation = models.IntegerField(default=0)
解决方案
您可以在模板中使用内联 if 语句。您的模板并不清楚您想要天蓝色的哪一行,所以为了清楚起见,这里是一个示例。
<td style="background-color: {% if u.is_favorite %} sky-blue {% else %} not-sky-blue {% endif %}">
....
</td>
推荐阅读
- flutter - Flutter Tabbarview 下划线颜色
- javascript - 滚动和窗口加载或调整大小时导航栏更改
- windows - 如何在 Windows 10 下的 Anaconda 中安装 PyGObject?
- cakephp-3.0 - 在 CakePHP3.6 中,如何将另一个控制器的函数调用到另一个控制器中?
- javascript - 自定义“import”与 webpack 的工作方式
- math - 在非线性尺度上映射点
- angular - 如何在使用 CLI 创建的 Angular 库中包含第三方模块
- jquery-mobile - jQueryMobile+PhoneGap+iOS 11:阻止尝试使用 history.replaceState() 更改会话历史 URL
- c# - 为什么我不能从此 DataRow 中获得 Byte[]?
- android - 房间持久性迁移指数