小编Sto*_*404的帖子

Django基于类的视图中self.request和request之间的区别

在django中,对于基于类的视图,ListView和类似的DetailView方法get()或者post()由开发人员定义的其他函数采用参数include selfrequest.我了解到,在self这些实际上是一个self.request领域,所以self.request和它之间的区别是request什么?

例如,这是基于类的视图中的函数,用于处理用户的登录要求:

def login(self, request):
    name = request.POST['name']
    pwd = request.POST['password']
    user = authenticate(username=name, password=pwd)

    if user is not None:
        request.session.set_expiry(0)
        login(request, user)
        log_message = 'Login successfully.'
    else:
        log_message = 'Fail to login.'

    return HttpResponseRedirect(reverse('blog:testindex'))
Run Code Online (Sandbox Code Playgroud)

这是用于处理用户注册的函数:

def register(self, request):
    user_name = self.request.POST['username']
    firstname = self.request.POST['firstname']
    lastname = self.request.POST['lastname']
    pwd = self.request.POST['password']
    e_mail = self.request.POST['email']
    user = User.objects.create(username=user_name, first_name=firstname, last_name=lastname, email=e_mail) …
Run Code Online (Sandbox Code Playgroud)

python django

11
推荐指数
1
解决办法
1537
查看次数

获取属于其OneToOne模型的属性排序的模型

假设有一个模型命名User,另一个命名与之PetOneToOne关系User,Pet模型有一个属性age,如何获得User拥有十大oldest狗的十个?

class User(models.Model):
     name = models.CharField(max_length=50, null=False, blank=False)

class Pet(models.Model):
     name = models.CharField(max_length=50, null=False, blank=False)
     owner = models.OneToOneField(User, on_delete=models.CASCADE)
     age = models.IntegerField(null=False)
Run Code Online (Sandbox Code Playgroud)

User,有一个属性friends,有一个ManyToMany与关系User,如何让十friendsUser Tom拥有十大oldest狗?

class User(models.Model):
     name = models.CharField(max_length=50, null=False, blank=False)
     friends = models.ManyToManyField(self, ...)

class Pet(models.Model):
     name = models.CharField(max_length=50, null=False, blank=False)
     owner = models.OneToOneField(User, on_delete=models.CASCADE)
     age = models.IntegerField(null=False)
Run Code Online (Sandbox Code Playgroud)

python django python-3.x

3
推荐指数
1
解决办法
74
查看次数

标签 统计

django ×2

python ×2

python-3.x ×1