gpt4 book ai didi

python - 使用一个模型中的变量并将其添加到 Django 中的表单中

转载 作者:太空宇宙 更新时间:2023-11-04 03:17:58 24 4
gpt4 key购买 nike

这里我有两个模型:

  1. 头像

  2. 成员

ProfilePic 的用户变量扩展自成员(member)的用户名(这样我就可以在数据库中为所有其他表单和模型使用一个用户名)。

现在ProfilePic作为一个表单,在我的views.py中我要添加:

member_obj = Member.objects.get(pk=用户名)

到我的 ProfilePic 表格。但是,当我运行我的代码时,它没有给出错误,但它也没有在数据库中呈现信息。所以我对这里发生的事情感到困惑。

我做错了什么?提前致谢!

# models.py

class ProfilePic(models.Model):
user = models.ForeignKey(Member, related_name='%(class)s_user', null=True)
text = models.TextField(max_length=4096)
thumbnail = models.FileField(upload_to='media', null=True)


class Member(models.Model):
username = models.CharField(max_length=16, primary_key=True)
password = models.CharField(max_length=16)
profile = models.OneToOneField(Profile, null=True)
following = models.ManyToManyField("self", symmetrical=True)


# forms.py

from django import forms
from .models import ProfilePic


class UploadFileForm(forms.ModelForm):
class Meta:
model = ProfilePic
fields = ['text','thumbnail']


# views.py

def profile(request):
username = request.session['username']
member_obj = Member.objects.get(pk=username)
if request.POST:
invitations = Invitation.objects.filter(to_user=username)
form = UploadFileForm(request.POST,request.FILES, instance=member_obj)
form.save()
picture = ProfilePic.objects.all()
return render(request, 'social/profile.html', {
'appname': appname,
'username': username,
'invitations':invitations,
'picture' : picture,
'form' : form,
'loggedin': True}
)

最佳答案

您正在将 Member 实例传递给 ProfilePic 模型表单。

你要做的是:

form = UploadFileForm(request.POST, request.FILES,
instance=member_obj.profile_pic_user)

所以你得到了一个ProfilePic实例。

关于python - 使用一个模型中的变量并将其添加到 Django 中的表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com