django-改写manage类-objects

django-改写manage类-objects,第1张

概述user/models.py中 class AddressManage(models.Manager): ‘‘‘地址模型管理类‘‘‘ def get_default_addr(self, user): ‘‘‘获取默认收货地址‘‘‘ try: address = self.get(user=user, is_defau

user/models.py中

class AddressManage(models.Manager):    ‘‘‘地址模型管理类‘‘‘    def get_default_addr(self,user):        ‘‘‘获取默认收货地址‘‘‘        try:            address = self.get(user=user,is_default=True)        except self.model.DoesNotExist:            # 不存在默认收货地址            address = None        return addressclass Address(BaseModel):    ‘‘‘地址模型类‘‘‘    user = models.ForeignKey(User,verbose_name=所属账户,on_delete=models.CASCADE,)    receiver = models.CharFIEld(max_length=20,verbose_name=收件人)    addr = models.CharFIEld(max_length=256,verbose_name=收件地址)    zip_code = models.CharFIEld(max_length=6,null=True,verbose_name=邮政编码)    phone = models.CharFIEld(max_length=11,verbose_name=联系电话)    is_default = models.BooleanFIEld(default=False,verbose_name=是否默认)    # 自定义一个模型管理器对象    objects = AddressManage()    class Meta:        db_table = df_address        verbose_name = 地址        verbose_name_plural = verbose_name

视图函数vIEws.py中直接调用方法

# 用户地址# /user/addressfrom user.models import Addressclass AddressVIEw(LoginrequiredMinxin,VIEw):    def get(self,request):        ‘‘‘显示用户信息页面‘‘‘        # 获取地址信息        user = request.user        address = Address.objects.get_default_addr(user)        print(address)        return 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,{errmsg:数据不完整})        if not re.match(r^1[3|4|5|7|8][0-9]{9}$,phone):            return render(request,{errmsg:手机格式不正确})        # 业务处理:地址添加        # 如果用户已存在默认收货地址,添加的地址不作为默认收货地址,否则作为默认收货地址        # 获取登录用户对应User对象        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)        # 返回应答 刷新页面        return redirect(reverse(user:address))
总结

以上是内存溢出为你收集整理的django-改写manage类-objects全部内容,希望文章能够帮你解决django-改写manage类-objects所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1190868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存