如何在Django registration 1.0中添加额外(自定义)字段

如何在Django registration 1.0中添加额外(自定义)字段,django,django-registration,Django,Django Registration,我已经阅读了很多关于这方面的问题和答案,但仍然没有好运。例如,这是一个很好的答案,但很可能不适用于django注册1.0 我的目标是在注册表单中添加两个自定义字段,即组织和职位。 注意:我使用registration.backend.simple提供的一步django注册。由于您还没有答案,我将提供这一步,尽管这并不完全是您想要的。我想它可能会对你有所帮助,不过 这就是我在几个使用django registration 1.0、Python2.7和django 1.6的项目中所做的工作。在这种情

我已经阅读了很多关于这方面的问题和答案,但仍然没有好运。例如,这是一个很好的答案,但很可能不适用于django注册1.0

我的目标是在注册表单中添加两个自定义字段,即组织和职位。
注意:我使用registration.backend.simple提供的一步django注册。

由于您还没有答案,我将提供这一步,尽管这并不完全是您想要的。我想它可能会对你有所帮助,不过

这就是我在几个使用django registration 1.0、Python2.7和django 1.6的项目中所做的工作。在这种情况下,我只需使用
用户名
电子邮件
密码
进行注册,然后用户可以在注册后添加配置文件字段。修改它以在注册时接受字段应该不会太难

我使用Twitter引导来设计样式,所以我的模板可能对你有帮助,也可能没有帮助。在这种情况下,我忽略了它们

我创建了两个名为
账户
身份验证
的应用程序,用于保存我的模型、表单和视图:

accounts.models.UserProfile

from django.db import models

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    title = models.CharField(max_length=100)
    company = models.CharField(max_length=250)
authentication.forms.EditUserProfileForm

from django.forms import ModelForm

class EditUserProfileForm(ModelForm):**
    . . .
    title = forms.CharField(widget=forms.TextInput())
    company = forms.CharField(widget=forms.TextInput())
    . . .
accounts.views.EditUserProfileView

from django.views.generic.base import View
from django.utils.decorators import method_decorator
from django.contrib.auth.decorators import login_required
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponseRedirect

from .models import UserProfile
from .forms import EditUserProfileForm

class EditUserProfileView(View):

    form_class = EditUserProfileForm
    template_name = 'accounts/profile_edit.html'

    @method_decorator(login_required)
    def get(self, request, *args, **kwargs):

        profile = get_object_or_404(UserProfile, user=request.user)

        form_dict = {
            'title': profile.title,
            'company': profile.company,
        }

        form = self.form_class(form_dict)

        return render(request, self.template_name, {
            'form': form,
            'profile': profile,
        })

    @method_decorator(login_required)
    def post(self, request, *args, **kwargs):

        profile = get_object_or_404(UserProfile, user=request.user)

        form = self.form_class(request.POST, instance=profile)

        if form.is_valid():

            company = form.cleaned_data['company']
            title = form.cleaned_data['title']

            title.company = title
            profile.company = company

            # you might need to save user too, depending on what fields
            request.user.save()
            profile.save()

            return HttpResponseRedirect('/dashboard/')

        return render(request, self.template_name, {'form': form})
project.url

url(r'^accounts/profile/edit/', EditUserProfileView.as_view(),  name='edit_user_profile_view'),

为什么你说答案不适用于django注册1.0?@ChrisHawkes我收到一个“无法导入名称注册”错误。我认为django registration 1.0中的注册被剥夺了。我尝试使用“url(r'^register/$”,RegistrationView.as_view(form_class=UserRegForm))”。但是仍然没有Lucka根据提供的解决django注册新版本错误的答案之一,您必须添加以下内容:从django.conf.url导入模式,包括从registration.backends.default.views导入注册视图从abby.apps.accounts.forms导入UserRegForm urlpatterns=模式(“”,url(r“^register/$”,RegistrationView.as_view(form_class=UserRegForm)),)@ChrisHawkes很抱歉,这也不起作用。我在之前的评论中已经提到,我已经尝试过了。@Iqbal如果您仍然存在问题,请在尝试Chris建议后编辑您的描述,以包括异常或问题。或者,如果您解决了问题,请发布解决方案,以帮助其他读者使用类似的I苏