无法在python中获取当前url

时间:2016-03-04 09:41:57

标签: python django

我已经创建了一个类和方法,如下所示。我需要获取当前页面的网址。但是在调用get_full_path()时遇到错误。

class A(object):
   def get_user(request):
       current_url = request.get_full_path()
   return current_url


class B(A):
    b = A()
    b.get_user()
    print b.current_url


Traceback Error:
    AttributeError: 'A' object has no attribute 'get_full_path'

我做错了什么?

1 个答案:

答案 0 :(得分:2)

此代码无效,因为有一些误解:

  1. 您应该将request传递给get_user
  2. get_user的第一个参数应为self,指向 A 实例。
  3. 对象无法返回值(您在 A return current_url中有class。)
  4. 在此示例中没有必要使用类继承。
  5. 您的代码应如下所示:

    class A(object):
        current_url = None
        def get_user(self, request):
            self.current_url = request.get_full_path()
    
    b = A()
    b.get_user(request)
    print b.current_url
    

    或者,如果您想将完整路径传递给class A的构造函数,并且无论出于何种原因在继承的B类中使用它:

    class A(object):
        def __init__(self, current_url):
            self.url = current_url
    
        def get_path(self):
            return self.current_url
    
    class B(A):
        # whatever you need here
        pass
    
    b = B(request.get_full_path())
    print b.get_path() # prints current path