帮我用thinkadmin写一个优惠券
时间: 2023-06-27 16:07:58 浏览: 97
好的,下面是一个基本的优惠券管理模块:
1. 创建一个 Coupon 模型
```python
from thinkadmin import ModelAdmin
from thinkadmin.decorators import action
from django.db import models
class Coupon(models.Model):
name = models.CharField(max_length=255, verbose_name='名称')
code = models.CharField(max_length=50, unique=True, verbose_name='优惠码')
discount = models.FloatField(verbose_name='折扣')
valid_from = models.DateTimeField(verbose_name='开始时间')
valid_to = models.DateTimeField(verbose_name='结束时间')
max_use = models.PositiveIntegerField(verbose_name='最大使用次数', default=1)
used = models.PositiveIntegerField(verbose_name='已使用次数', default=0)
def __str__(self):
return self.name
class Meta:
verbose_name = '优惠券'
verbose_name_plural = '优惠券'
class CouponAdmin(ModelAdmin):
list_display = ('name', 'code', 'discount', 'valid_from', 'valid_to', 'max_use', 'used')
search_fields = ('name', 'code')
list_filter = ('valid_from', 'valid_to')
actions = ['make_used', 'make_unused']
@action(description='标记为已使用')
def make_used(self, request, queryset):
updated = queryset.update(used=1)
self.message_user(request, f'成功标记 {updated} 条记录为已使用')
@action(description='标记为未使用')
def make_unused(self, request, queryset):
updated = queryset.update(used=0)
self.message_user(request, f'成功标记 {updated} 条记录为未使用')
```
2. 在 admin.py 中注册 CouponAdmin
```python
from django.contrib import admin
from .models import Coupon, CouponAdmin
admin.site.register(Coupon, CouponAdmin)
```
现在你可以在 Django Admin 中管理优惠券了。
阅读全文