Python django模型获取用户信息
尝试创建一个包含艺术家和歌曲的模型,并让您知道输入的用户名。 到目前为止,我已经在我的模型中Python django模型获取用户信息,python,django,django-models,Python,Django,Django Models,尝试创建一个包含艺术家和歌曲的模型,并让您知道输入的用户名。 到目前为止,我已经在我的模型中 from django.contrib.auth.models import User class Song(models.Model): uesrname = models.ForeignKey(User,on_delete=models.CASCADE) artist = models.CharField(max_length=30) song=models.CharField(max_len
from django.contrib.auth.models import User
class Song(models.Model):
uesrname = models.ForeignKey(User,on_delete=models.CASCADE)
artist = models.CharField(max_length=30)
song=models.CharField(max_length=30)
我添加了一个可以处理用户输入数据的表单,但该表单允许我从所有令人兴奋的用户和输入艺术家中选择一个,即song
forms.py
class NewSong(forms.ModelForm):
class Meta:
model=Song
exclude = ['username']
我如何更改它,以便在表单中只有我自己的登录用户?您可以在forms.py文件中排除用户名字段作为
exclude=['username']
,并在表单的保存方法中将username设置为request.user
。有关详细信息:它会隐藏用户名部分,但如果form.is\u valid():instance=form.save(commit=False)instance.username=request.user instance.save(),则此代码不起作用。错误是什么?您还可以在问题中共享forms.py文件吗?错误在于它必须是用户实例和User.objects.get(request.User)不能正常工作如果用户登录并点击表单的保存按钮,request.User应该返回一个用户对象。你在出示表格之前检查过了吗?您还可以使用request.user.is\u authantated()方法在设置为实例之前进行确认。问题中不清楚错误。