gpt4 book ai didi

django - 带有个人资料字段的注册表单

转载 作者:行者123 更新时间:2023-12-01 09:10:01 25 4
gpt4 key购买 nike

我有一个简单的问题。这是我的个人资料:

class Profile(models.Model):

user = models.ForeignKey(User, unique=True)
born = models.DateTimeField('born to')
photo = models.ImageField(upload_to='profile_photo')

我想用这些字段(来自 UserProfile 模型)创建一个注册表单:

  • 用户名
  • 名字
  • 姓氏
  • 出生
  • 照片

这些字段是必需的。

我该怎么做?

get_profile() 如何在此问题的模板中工作?

谢谢你:)

最佳答案

设置

您使用的是 django-profilesdjango-registration项目?如果没有,您应该这样做——大部分代码已经为您编写好了。

个人资料

您的用户资料代码是:

class Profile(models.Model):
user = models.ForeignKey(User, unique=True)
born = models.DateTimeField('born to')
photo = models.ImageField(upload_to='profile_photo')

您是否在 Django 设置中正确设置了此配置文件?如果没有,您应该添加它,用 yourapp 代替您的应用名称:

AUTH_PROFILE_MODULE = "yourapp.Profile"

注册表

django-registration 带有一些默认的注册表单,但您指定要创建自己的注册表单。每个Django form field defaults to required所以你不需要改变它。重要的部分是确保处理现有的注册表单字段并添加配置文件创建。像这样的东西应该可以工作:

from django import forms
from registration.forms import RegistrationForm
from yourapp.models import Profile
from registration.models import RegistrationProfile

class YourRegistrationForm(RegistrationForm):
born = forms.DateTimeField()
photo = forms.ImageField()

def save(self, profile_callback=None):
new_user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'],
password=self.cleaned_data['password1'],
email = self.cleaned_data['email'])
new_profile = Profile(user=new_user, born=self.cleaned_data['born'], photo=self.cleaned_data['photo'])
new_profile.save()
return new_user

把它放在一起

您可以使用默认的 django-registration 模板和 View ,但希望在 urls.py 中将它们传递给您的表单:

from registration.backends.default import DefaultBackend
from registration.views import activate
from registration.views import register

# ... the rest of your urls until you find somewhere you want to add ...

url(r'^register/$', register,
{'form_class' : YourRegistrationForm, 'backend': DefaultBackend},
name='registration_register'),

关于django - 带有个人资料字段的注册表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2010653/

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