Python 使用Django进行身份验证上载文件

Python 使用Django进行身份验证上载文件,python,django,python-2.7,django-models,django-views,Python,Django,Python 2.7,Django Models,Django Views,您好,我有两个不同的项目一个项目只有身份验证,另一个只有文件上传和上传到个人文件夹每个用户(从管理模式良好的工作),我想与一个项目连接。 在第二个项目中,我创建了一个功能,为任何想要使用user\u id,user\u username上传文件的用户创建新的个人文件夹(我有很多类似的方法来实现这个功能,这是为了测试) 我不知道如何获取登录用户的user\u id或user\u name,以及如何在views.py中将其用于我的生成路径的功能。 我想可能是这样的user=Photo.objects

您好,我有两个不同的项目一个项目只有身份验证,另一个只有文件上传和上传到个人文件夹每个用户(从管理模式良好的工作),我想与一个项目连接。 在第二个项目中,我创建了一个功能,为任何想要使用
user\u id
user\u username
上传文件的用户创建新的个人文件夹(我有很多类似的方法来实现这个功能,这是为了测试)

我不知道如何获取登录用户的
user\u id
user\u name
,以及如何在views.py中将其用于我的
生成路径的功能。
我想可能是这样的
user=Photo.objects.get(user\u id=user\u id)
,但我不确定

def generate_path(user):
    return "/{0}/img".format(user.username)


class Photo(models.Model):
     user = models.ForeignKey(to=settings.AUTH_USER_MODEL)
    file = models.FileField(upload_to=upload_to=generate_path(self.user)))
views.py

@login_required
class BasicUploadView(View):
    def get(self, request):
        photoslist = Photo.objects.all()
        return render(self.request, 'index.html', {'photos': photoslist})

    def post(self, request):
        form = PhotoForm(self.request.POST, self.request.FILES)
        if form.is_valid():
            photo = form.save()
            data = {'is_valid': True, 'name': photo.file.name, 'url': photo.file.url}
        else:
            data = {'is_valid': False}
        return JsonResponse(data)

如果我理解的很好,您希望在您的视图中获得登录用户。 在Django中,如果用户成功登录,则该对象在request.user中可用,您可以使用它来检索照片中的记录,如您所述

def get(self, request):
    # retrieve photos from logon user
    Photo.objects.get(user=request.user)

generate_path
中,我使用
user_id
right?必须在视图中定义该id,并以某种方式将图像保存在正确的路径中?或者如果用户登录,则从Django进行自动操作?您需要确保在发布时保存用户字段