【问题标题】:Authintication upload files using Django使用 Django 认证上传文件
【发布时间】:2017-04-02 09:09:19
【问题描述】:

你好,我有两个不同的项目,一个项目只有身份验证,另一个只有文件上传和上传到每个用户的个人文件夹(在管理员模式下工作正常),我想连接一个项目。 在第二个项目中,我创建了一个功能,为任何想要使用user_iduser_username 上传文件的用户创建新的个人文件夹(我有很多类似的方法来执行此功能,这是为了测试)。

我不知道如何获取登录用户的user_iduser_name,以及如何在views.py 中将其用于generate_path 的功能。 我的事情可能是这样的user = Photo.objects.get(user__id=user_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)

【问题讨论】:

    标签: python django python-2.7 django-models django-views


    【解决方案1】:

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

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

    【讨论】:

    • generate_path 我使用user_id right?必须在视图中定义id,以某种方式将图像保存在正确的路径中?或者如果用户登录然后从Django自动获取?跨度>
    • 发帖时需要确保保存用户字段
    猜你喜欢
    • 2011-06-12
    • 2011-03-18
    • 2019-05-13
    • 2012-07-29
    • 2013-12-14
    • 2017-02-14
    相关资源
    最近更新 更多