如何将用户发送的数据关联到Django中自己的帐户



我有一个名为KeyFormModel的模型,它有两个字段"secret_key";以及";primary_key";,我将此模型指向一个表单,并将此表单称为视图和模板。每个用户都有一个primary_key和一个secret_key,当我将其发送到模型时,它们正在与其他密钥集混合

这是我的型号

class KeyFormModel(models.Model):
username = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
primary_key = models.CharField(max_length=200)
secret_key = models.CharField(max_length=200)

def __str__(self):
return username+"_keys"
class Meta:
verbose_name_plural = 'Keys'

这是我的表格

from ..models import KeyFormModel
from django import forms
from django.conf import settings
class KeyForm(forms.ModelForm):
primary_key = forms.CharField(required=True)
secret_key = forms.CharField(required=True,widget = forms.PasswordInput)

class Meta:
model = KeyFormModel
fields = ("username","primary_key","secret_key")

这是我的观点

@cache_control(no_cache=True, must_revalidate=True)
@login_required(login_url='../login')
def AccountView(request):

if(request.method == 'POST'):
form =KeyForm(request.POST)
if(form.is_valid()):
form.save()
else:
for msg in form.error_messages:
messages.error(request,f"{msg}")


form = KeyForm
return(render(request, 'accountView.html',context={"form":form}))

正如你所看到的,我试图在登录该帐户后从AUTH_USER_MODEL添加用户名,但失败得很惨。请hlp

对我来说成功了:

将用户导入模型:

from django.contrib.auth.models import User

并在特定型号中添加用户字段:

user = models.ForeignKey(
User,
on_delete=models.CASCADE,
)

我找到了答案

@cache_control(no_cache=True, must_revalidate=True)
@login_required(login_url='../login')
def AccountView(request):
keyforce=KeyFormModel.objects.filter(user=request.user)         
if(keyforce):
return(render(request,'keyView.html',{"keys":keyforce}))
else:
if(request.method == 'POST'):
form = KeyForm(request.POST)
if(form.is_valid()):
primary_key = request.POST['primary_key']
secret_key = request.POST['secret_key']
new = KeyFormModel(primary_key=primary_key,
secret_key=secret_key, user=request.user)
new.save()
return(redirect("main:Account"))
else:
for msg in form.error_messages:
messages.error(request, f'{msg}')
else:
form = KeyForm

return(render(request, 'accountView.html', context={"form": form}))

我了解到,模型的值可以通过视图本身添加,

我所做的只是像这个

在将用户添加到您的型号之后

在视图中创建

form=yourModel(user=request.user(

瞧,它完成了

最新更新