vue --- 07 payments and orders

In order to facilitate the development, and future maintenance of the project, we once again create a sub-application orders to complete the next payment orders and order functions.

cd luffy/apps
python ../../manage.py startapp orders

Registration sub-applications, settings / dev.py, Code:

= INSTALLED_APPS [
     # sub-applications 
    . . . 
    
    ' Orders ' , 
]

Orders model

from django.db Import Models 

# the Create your Models here Wallpaper. 
from luffy.utils.models Import BaseModel
 from users.models Import the User
 from courses.models Import Course,
 class the Order (BaseModel):
     "" " Order History " "" 
    status_choices = ( 
        ( 0, ' non-payment ' ), 
        ( 1, ' paid ' ), 
        ( 2, ' canceled ' ), 
        ( 3, ' timeout canceled ' ), 
    ) 
    pay_choices = ( 
        (0, ' Alipay ' ), 
        ( 1, ' micro-channel pay ' ) 
    ) 
    order_title = models.CharField (max_length = 150, verbose_name = " order header " ) 
    total_price = Models .DecimalField (max_digits =. 6, decimal_places = 2, the verbose_name = " total order " , default = 0) 
    real_price = models.DecimalField (max_digits =. 6, decimal_places = 2, the verbose_name = "The amount actually paid ." , default = 0) 
    ORDER_NUMBER = models.CharField (= 64 MAX_LENGTH, the verbose_name = " Order Number " ) 
    order_status The = models.SmallIntegerField (= status_choices choices, default = 0, the verbose_name = " Order Status " ) 
    pay_type = Models. SmallIntegerField (choices = pay_choices, default = 0, verbose_name = " payment " ) 
    use_coupon = models.BooleanField (default = False, verbose_name = " whether to use the coupon " ) 
    coupon = models.IntegerField (null = True, verbose_name = " user coupon ID " )
    order_desc = models.TextField(max_length=500, verbose_name="订单描述")
    pay_time = models.DateTimeField(null=True, verbose_name="支付时间")
    user = models.ForeignKey(User, related_name='user_orders', on_delete=models.DO_NOTHING,verbose_name="下单用户")

    class Meta:
        db_table="ly_order"
        verbose_name= "订单记录"
        verbose_name_plural= "Order History "

    def __str__(self):
        return "%s,总价: %s,实付: %s" % (self.order_title, self.total_price, self.real_price)


class OrderDetail(BaseModel):
    """订单详情"""
    order = models.ForeignKey(Order, related_name='order_courses', on_delete=models.CASCADE, verbose_name="订单")
    course = models.ForeignKey(Course, related_name='course_orders', on_delete=models.CASCADE, verbose_name="课程")
    expire Models.IntegerField = (default = ' -1 ' , the verbose_name = " validity period " ) 
    . Price = models.DecimalField (max_digits =. 6, decimal_places = 2, the verbose_name = " Course List " ) 
    real_price = models.DecimalField (max_digits =. 6, 2 = decimal_places, verbose_name = " course Nett " ) 
    discount_name = models.CharField (max_length = 120, default = "" , verbose_name = " Offer type " )
     class Meta: 
        db_table = " ly_order_detail "
        verbose_name = " Order details " 
        verbose_name_plural = " Order details "
View Code

Sign up to the current sub-application in xadmin

Creating adminx.py in the current sub-applications, the code:

Import xadmin
 from .models Import the Order
 class OrderModelAdmin (Object):
     "" " Order Management model " "" 
    Pass 

xadmin.site.register (the Order, OrderModelAdmin) 


from .models Import OrderDetail
 class OrderDetailModelAdmin (Object):
     "" " Order details model management "" " 
    Pass 

xadmin.site.register (OrderDetail, OrderDetailModelAdmin)

 

Back-end implementation of api interface to generate orders

 

Guess you like

Origin www.cnblogs.com/yang950718/p/10928817.html
07