0
我想創建一個自定義註冊表單,但我不知道該怎麼做,因爲我試圖將默認的django註冊與新模型連接起來。如何在Django中創建一個配置文件註冊表單?
這是它的樣子,它可能是錯的,但我在想這樣的事情。
models.py
class Profile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=20, blank=True, null=True)
description = models.TextField(max_length=400)
views.py
def register_user(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/user/')
else:
if request.method == 'POST':
form = MyRegistrationForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/user/')
context = {'profil':Profile.objects.all()}
context.update(csrf(request))
context['form'] = MyRegistrationForm()
return render(request, 'register.html', context)
forms.py
class MyRegistrationForm(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = {'username', 'password1', 'password2', 'email'}
def save(self, commit=True):
my_user = super(MyRegistrationForm, self).save(commit=False)
my_user.email = self.cleaned_data['email']
new_profile = Profile(user=my_user, name="John", description="a person")
if commit:
new_profile.save()
return new_profile
REGIST er.py
<form action="/user/register/" method="post" id="register" autocomplete="off">
{% csrf_token %}
<div class="fieldWrapper">
{{ form.username.errors }}
{{ form.username.label_tag }}
{{ form.username }}
</div>
[... other fiels ...]
<input type="submit" value="Register"/>
</form>
我試圖與表單模型連接,所以當有人註冊,當我在這樣的模板鍵入他的名字:{{user.name}}
它應該是「約翰」。
我該如何實現這個目標?
我想你提出最後的解決方案,但我怎麼能註冊一個可以驗證的用戶,(字段=用戶名,電子郵件,密碼1,密碼2,名稱,說明) – Lindow
我編輯了一個問題,我希望它有幫助 – eustass
Worke d!令人驚歎的答案非常感謝你 – Lindow