繁体   English   中英

如何将 User 模型中的用户名关联到 Django 中的另一个模型?

[英]How to associate a username from the User model to another model in Django?

我目前有一个索引视图,其中包含名称、文件和标签的多个输入标签。 我正在尝试将处理该视图(名称:上传)的模型连接到用户模型,并将登录用户的用户名关联到上传模型。

这是我的观点:

def index(request):
if request.method == 'POST':
    form = FileUploadForm(request.POST, request.FILES)
    if form.is_valid():
        form.save()
else:
    form = FileUploadForm
allTags = Tag.objects.all()
context = {'form': form, 'allTags': allTags}
return render(request, 'index.html', context)

这是上传的模型:

class Uploaded(models.Model):
objects: models.Manager()
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="users")
name = models.CharField(max_length=50)
file = models.FileField(upload_to=MEDIA_ROOT)
tags = TaggableManager()

def __str__(self):
    return f"{self.name} {self.file}"

您可以使用登录用户“修补”包含在表单中的.instance

from django.contrib.auth.decorators import login_required

@login_required
def index(request):
    if request.method == 'POST':
        form = FileUploadForm(request.POST, request.FILES)
        if form.is_valid():
            form.instance.user = request.user
            form.save()
    else:
        form = FileUploadForm()
    allTags = Tag.objects.all()
    context = {'form': form, 'allTags': allTags}
    return render(request, 'index.html', context)

注意:您可以使用@login_required装饰器 [Django-doc]将视图限制为经过身份验证的用户的视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM