[英]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.