python - 如何将模型实例连接到 django 中的用户?
问题描述
我希望这样做,以便创建个人资料的登录用户在创建个人资料时链接到他们的 guestprofile 模型。
当我在登录时创建访客配置文件时,它成功创建了访客配置文件,但在访客配置文件管理屏幕中,没有用户连接到创建的访客配置文件模型。相反,有一个下拉菜单列出了所有用户,这使得连接过程手动。谢谢。
表格.py
class AddProfileForm(forms.ModelForm):
name = forms.CharField(max_length=50, widget=forms.TextInput(attrs={'class': 'form-control'}))
location = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control'}))
summary = forms.CharField(max_length=500, widget=forms.Textarea(attrs={'class': 'form-control'}))
profile_pic = forms.ImageField()
class Meta:
model = GuestProfile
fields = ('name', 'location', 'summary', 'profile_pic')
模型.py
class GuestProfile(models.Model):
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
location = models.CharField(max_length=100)
summary = models.TextField(max_length=350)
profile_pic = models.ImageField(null=True, blank=True, upload_to="images/")
def __str__(self):
return str(self.user)
视图.py
class AddProfileView(CreateView):
model = GuestProfile
form_class = AddProfileForm
template_name = 'profilemanip/addprofile.html'
success_url = reverse_lazy('home')
def get_object(self):
return self.request.user
编辑:我最终通过将我的 AddProfileView 更改为以下内容来解决我的问题:
def AddProfileView(request,*args,**kwargs):
form = AddProfileForm(request.POST or None)
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.save()
form = AddProfileForm()
return render(request, "profilemanip/addprofile.html", {"form": form})
解决方案
推荐阅读
- reactjs - 尝试从客户端连接时出现 WebSocket 问题
- javascript - 用玩笑模拟特定 url 上的 axios 请求
- javascript - 如何在我的代码中避免 Array-callback-return 错误
- flutter - 当单击 ListView 中的项目到 DetailsPage 时,如何加载不同的项目类?
- javascript - 仅使用 js 在移动设备上获取最精确位置的最佳方法
- mysql - 如何查找一整周从晚上 8 点到早上 6 点的数据
- javascript - HERE maps 使用 Bounds 获取基点
- github-actions - 编辑 GitHub 操作日志中未存储在官方操作机密中的文本的机密
- javascript - 是否可以以 GLTF 格式从场景中导出动画和变形?
- unity3d - 当我在统一上将平台切换到 android 时,Skybox 无法正确渲染?