django- rewrite manage class -objects

user/models.py中

AddressManage class (models.Manager):
     '' ' Address Management Type ' '' 
    DEF get_default_addr (Self, User):
         '' ' get the default shipping address ' '' 
        the try : 
            address = self.get (User = User, the is_default = True)
         the except self.model.DoesNotExist:
             # absence of default shipping address 
            address = None
         return address 


class the address (BaseModel):
     '' ' address model class '' ' 
    User = models.ForeignKey ( ' the User ' , the verbose_name = 'Your account ', On_delete = models.CASCADE,) 
    Receiver = models.CharField (= 20 is MAX_LENGTH, the verbose_name = ' recipient ' ) 
    addr = models.CharField (MAX_LENGTH = 256, the verbose_name = ' recipient address ' ) 
    ZIP_CODE = models.CharField ( 6 = max_length, null = True, verbose_name = ' ZIP Code ' ) 
    phone = models.CharField (= max_length 11, verbose_name = ' telephone ' ) 
    is_default = models.BooleanField (default = False, verbose_name = ' whether the default ' )
     # customize a model manager object
    objects = AddressManage()

    class Meta:
        db_table = 'df_address'
        verbose_name = '地址'
        verbose_name_plural = verbose_name

Call the method directly in the view function views.py

# User address 
# / User / address 
from user.models Import the Address
 class AddressView (LoginRequiredMinxin, View):
     DEF GET (Self, Request):
         '' ' user information page ' '' 
        # obtains the address information of 
        User = the request.user 
        address = Address.objects.get_default_addr (User)
         Print (address)
         return the render (Request, ' user_center_site.html ' , { ' Page ' : ' address ' , 'address':address})

    def post(self, request):
        '''添加地址'''
        # 接收数据
        receiver = request.POST.get('receiver')
        zip_code = request.POST.get('zip_code')
        addr = request.POST.get('addr')
        phone = request.POST.get('phone')
        # 校验数据
        if not all([receiver, addr, phone]):
            return render(request, ' User_center_site.html ' , { ' ErrMsg ' : ' incomplete data ' })
         IF  Not re.match (R & lt ' ^. 1 [. 3 |. 4 |. 5 |. 7 |. 8] [0-9] {} $. 9 ' , phone):
             return the render (Request, ' user_center_site.html ' , { ' ErrMsg ' : ' Mobile Malformed ' })
         # business process: Add address 
        # If the user has a default shipping address, add the address does not exist as a default closed address goods, otherwise known as the default shipping address 
        # to obtain the login user user object corresponding to 
        the user = request.user 
        address= Address.objects.get_default_addr(user)

        if address:
            is_default = False
        else:
            is_default = True

        # 添加地址
        Address.objects.create(user=user,
                               receiver=receiver,
                               zip_code=zip_code,
                               addr=addr,
                               phone=phone,
                               is_default=is_default)
        #Returns a response to refresh the page 
        return redirect (Reverse ( ' the User: address ' ))

 

Guess you like

Origin www.cnblogs.com/yifengs/p/11614583.html
Recommended