django 3,在模板中呈现两种形式

时间:2020-09-19 18:38:00

标签: django django-forms django-views django-templates django-3.1

我有两种形式的两种模型,我需要将它们发送到我的模板中,以前在django 2中工作正常,但是现在我更新到django并不能很好地返回,如果我删除了 dict views.py 中的 RequestContext(request)),它赎回了html,但没有显示我的表单,我显示了以下内容代码

forms.py

class UserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2')

class UserProfileForm(ModelForm):
    class Meta:
        model = UserProfile
        fields = ('empresa', 'telefono', 'rfc', 'upload')

urls.py

urlpatterns = [
    url(r'^registro$', views.registro, name='registro'),
]

views.py

def registro(request):
    if request.method == 'POST':
        uf = UserForm(request.POST, prefix='user')
        upf = UserProfileForm(request.POST, prefix='userprofile')
        if uf.is_valid() * upf.is_valid():
            user = uf.save()
            userprofile = upf.save(commit=False)
            userprofile.user = user
            userprofile.save()
            name = 'Registro Pagina'
            email = 'main@example.com'
            fullemail = name + " " + "<" + email + ">"
            content = {"%s: %s" % (key,
                                    value) for (key,
                                    value) in list(request.POST.items())}
            content = "\n".join(content)
            message = str(upf)
            msg = EmailMessage('new register',
                                content,
                                fullemail,
                                ['main@example.com',
                                'other@example.com'])
            #msg.content_subtype = "html"  # Main content is now text/html
            msg.send()
            return HttpResponseRedirect('/')
    else:
        uf = UserForm(prefix='user')
        upf = UserProfileForm(prefix='userprofile')
    return render(request, 'cfdipanel/register.html',
                  dict(userform=uf,
                       userprofileform=upf),
                  RequestContext(request))

0 个答案:

没有答案