如何在Django中制作自定义装饰器?

阿贾亚·普达萨尼(Ajaya Pudasaini)

我绝对是python,django框架的初学者。我不知道如何在Django中制作自定义装饰器。我正在尝试,如果用户的个人资料已100%完成,他们可以申请工作,否则他们会显示警告消息“您的个人资料已完成,请首先完成您的个人资料,然后申请此工作”

我已遵循此代码models.py

class profile(models.Model):
    user = models.OneToOneField(User, on_delete = models.CASCADE, primary_key=True)
    random = models.CharField(max_length=50)
    image = models.ImageField(upload_to="profile_pics")

    def __str__(self):
        return f'{self.user.username} profile'

    def get_absolute_url(self):
        return reverse('jobseeker:profile_count')



    @property 
    def percentage_complete(self):
        percent = { 'random': 50, 'image': 50}
        total = 0
        if self.random:
            total += percent.get('random', 0)
        if self.image:
            total += percent.get('image', 0)
        return total

decorators.py

def complete_profile_required(view_func):
def wrapper_func(request, *args, **Kwargs):
    if request.user.profile.percentage_complete == 100:
        print(request.user.profile.percentage_complete)
        return redirect('jobseeker:apply_job')
    else:
        return view_func(request, *args, **Kwargs)
return wrapper_func

views.py

@login_required
@jobseeker_required
@complete_profile_required
def apply_job(request):
    return render(request, 'apply_job.html')

urls.py

 path('apply_job', views.apply_job, name='apply_job')

它将返回此错误

第505节

您必须重定向到另一个视图。您正在得到TOO_MANY_REDIRECTS错误。因为您要重定向它相同的视图。

你必须改变你的装饰

def complete_profile_required(view_func):
  def wrapper_func(request, *args, **Kwargs):
    if request.user.profile.percentage_complete == 100:
        # change your logic here
        return redirect('jobseeker:another_view')
    else:
        return view_func(request, *args, **Kwargs)
return wrapper_func

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在自定义Pinax安装上修改Django的login_required装饰器?

来自分类Dev

制作自定义django视图装饰器(带有args)时遇到问题

来自分类Dev

TypeScript中的自定义装饰器

来自分类Dev

Tornado 中的自定义装饰器

来自分类Dev

如何在Angular2中制作自定义验证器

来自分类Dev

如何在HTML中制作装饰器?

来自分类Dev

如何在C#中制作自定义颜色?

来自分类Dev

如何在Android中制作自定义TextView?

来自分类Dev

如何在C#中制作自定义GUI

来自分类Dev

如何在Android中制作自定义范围栏?

来自分类Dev

如何在Flutter中制作自定义按钮形状

来自分类Dev

如何在C#中制作自定义颜色?

来自分类Dev

如何在Wordpress中制作自定义页面

来自分类Dev

如何在android中制作自定义导航抽屉

来自分类Dev

如何在 JavaFX 中制作自定义 LineChart 控件?

来自分类Dev

如何在Java中制作这种自定义算法?

来自分类Dev

Thymeleaf装饰器-如何在一个特定页面上通过自定义页脚替换布局中的页脚

来自分类Dev

Thymeleaf装饰器-如何在一个特定页面上通过自定义页脚替换布局中的页脚

来自分类Dev

如何制作一个装饰器来检查表单(任何自定义表单)是否在 Django 中提交?

来自分类Dev

django如何制作自定义网址

来自分类Dev

菊花链式Python / Django自定义装饰器

来自分类Dev

Django自定义权限方法或装饰器

来自分类Dev

菊花链式Python / Django自定义装饰器

来自分类Dev

如何在自定义装饰器中使用NestJS Reflector?

来自分类Dev

Django Rest框架中基于类的视图的自定义装饰器

来自分类Dev

Django中自定义构建装饰器的安全性问题

来自分类Dev

Django中自定义构建装饰器的条件设置问题

来自分类Dev

Django Rest Framework 内部函数未在自定义装饰器中调用

来自分类Dev

如何在自定义帮助器中合并htmlAttributes

Related 相关文章

  1. 1

    如何在自定义Pinax安装上修改Django的login_required装饰器?

  2. 2

    制作自定义django视图装饰器(带有args)时遇到问题

  3. 3

    TypeScript中的自定义装饰器

  4. 4

    Tornado 中的自定义装饰器

  5. 5

    如何在Angular2中制作自定义验证器

  6. 6

    如何在HTML中制作装饰器?

  7. 7

    如何在C#中制作自定义颜色?

  8. 8

    如何在Android中制作自定义TextView?

  9. 9

    如何在C#中制作自定义GUI

  10. 10

    如何在Android中制作自定义范围栏?

  11. 11

    如何在Flutter中制作自定义按钮形状

  12. 12

    如何在C#中制作自定义颜色?

  13. 13

    如何在Wordpress中制作自定义页面

  14. 14

    如何在android中制作自定义导航抽屉

  15. 15

    如何在 JavaFX 中制作自定义 LineChart 控件?

  16. 16

    如何在Java中制作这种自定义算法?

  17. 17

    Thymeleaf装饰器-如何在一个特定页面上通过自定义页脚替换布局中的页脚

  18. 18

    Thymeleaf装饰器-如何在一个特定页面上通过自定义页脚替换布局中的页脚

  19. 19

    如何制作一个装饰器来检查表单(任何自定义表单)是否在 Django 中提交?

  20. 20

    django如何制作自定义网址

  21. 21

    菊花链式Python / Django自定义装饰器

  22. 22

    Django自定义权限方法或装饰器

  23. 23

    菊花链式Python / Django自定义装饰器

  24. 24

    如何在自定义装饰器中使用NestJS Reflector?

  25. 25

    Django Rest框架中基于类的视图的自定义装饰器

  26. 26

    Django中自定义构建装饰器的安全性问题

  27. 27

    Django中自定义构建装饰器的条件设置问题

  28. 28

    Django Rest Framework 内部函数未在自定义装饰器中调用

  29. 29

    如何在自定义帮助器中合并htmlAttributes

热门标签

归档