我正在使用Django的内置用户,该用户在我的应用程序中进行身份验证并使用一些服务。现在我的问题是,我想获取当前用户的用户名并将其写入数据库。在这里,我使用了这样的方法,将用户模型作为外键提到,但它将作为空数据分配给数据库。但我想写下当前用户的名字。这是我的密码:
views.py
:
@login_required(login_url='sign_in')
def upload_document(request):
context = {}
form = UploadDocumentForm()
if request.method == 'POST':
form = UploadDocumentForm(request.POST or None, request.FILES or None)
if form.is_valid():
form.save()
return redirect('index')
context = {'form':form}
return render(request, 'upload_document.html', context)
models.py
:
class OriginalDocument(models.Model):
document = models.FileField(upload_to='static/original_document', blank=False)
document_title = models.CharField(max_length=300)
student_name = models.CharField(max_length=100)
teacher_name = models.CharField(max_length=100)
document_type = models.CharField(max_length=100)
university = models.ForeignKey(University, on_delete=models.CASCADE)
date_added = models.DateTimeField(auto_now_add = True)
checked_by = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.document_title
forms.py:
class UploadDocumentForm(ModelForm):
class Meta:
model = OriginalDocument
fields = '__all__'
exclude = ['date_added', 'checked_by']
def __init__(self, *args, **kwargs):
super(UploadDocumentForm, self).__init__(*args, **kwargs)
最后,经过几个小时的搜索,我找到了一个名为django currentuser(link is here)的包,它使用起来非常简单,是我真正想要的项目。这个包帮助我获取登录用户的用户名,并将其用作模型中的字段
然后您必须将
save_model
写入admin.py
中,如下所示或者使用如下形式的override save()方法进行尝试
相关问题 更多 >
编程相关推荐