diff --git a/backend/shop/admin.py b/backend/shop/admin.py index 945ad88..0f9407e 100644 --- a/backend/shop/admin.py +++ b/backend/shop/admin.py @@ -60,6 +60,10 @@ class OrderableAdminMixin: return redirect(request.META.get('HTTP_REFERER', '..')) def order_actions(self, obj): + # 只有专家用户才显示排序按钮 + if not getattr(obj, 'is_star', True): # 默认为True是为了兼容其他模型,WeChatUser有is_star字段 + return "默认排序" + # 使用 inline style 实现基本样式,hover 效果如果不能用 CSS 文件,就只能妥协或者用 onmouseover btn_style = ( "display: inline-flex; align-items: center; justify-content: center; " diff --git a/backend/shop/models.py b/backend/shop/models.py index 920fca7..084abeb 100644 --- a/backend/shop/models.py +++ b/backend/shop/models.py @@ -30,6 +30,13 @@ class WeChatUser(models.Model): created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间") + def save(self, *args, **kwargs): + is_new = self.pk is None + super().save(*args, **kwargs) + if is_new and self.order == 0: + WeChatUser.objects.filter(pk=self.pk).update(order=self.pk) + self.order = self.pk + def __str__(self): return self.nickname or self.openid