首页 > 解决方案 > 如何在 Django 中将用户发送的数据关联到他自己的帐户

问题描述

我有一个名为 KeyFormModel 的模型,它有 2 个字段“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 添加用户名,但失败得很惨。请帮忙

标签: django

解决方案


什么对我有用:

将用户导入模型:

from django.contrib.auth.models import User

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

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

推荐阅读