1
我被编写为Profile
,并使用OneToOneField
连接到用户模型。我有一个注册表单,用户输入对应于用户和配置文件的输入。 Django提供User.objects.create_user
保存与User
模型相关的字段,但我不知道如何手动保存Profile
模型的详细信息。
这里是我的代码:Django手动保存用户配置文件
models.py
from django.db import models
from django.contrib.auth.models import User
def Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
full_name = models.CharField(max_length=150, required=True)
# lot more fields here
views.py
@csrf_protect
def register(request):
if request.method == 'POST':
full_name = request.POST.get('full_name', '')
username = request.POST.get('username', '')
password = request.POST.get('password', '')
User.objects.create_user(username=username, password=password)
# how to save Profile full_name here
return render(request, 'register.html')
register.html
<form method="post" action="/register/">{% csrf_token %}
<div class="form-group">
<label for="full_name">Name</label>
<input type="text" name="full_name" id="full_name">
</div>
<div class="form-group">
<label for="username">Username</label>
<input type="text" name="username" value="" id="username">
</div>
<div class="form">
<label for="password">Password</label>
<input type="pass" name="password" value="" id="password">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
1)如何将Profile
型号的full_name
保存到views.py
?我可以做到这一点,而不需要为将来想要保存或信号的每个模型创建表单类?
2)是否需要在settings.py中更改auth_user_model
才能手动保存配置文件详细信息?
3)如何验证字段而不创建新的Form类?
'蟒蛇manage.py makemigrations'我得到'类型错误相关的配置文件:__init __()得到了一个意想不到的关键字参数“ ' – nivas
删除您的个人资料模型的全名中的required = True – Exprator
但我每次都需要full_name – nivas