html 中未显示表单 - django

Form not showing in html - django

我在 django 中有一个扩展用户模型的模型,该模型是一个用户配置文件,我将使用它来将附加信息关联到用户模型。我有模型、表单、视图、url 和 html,但是 html 没有显示字段,只显示提交按钮。

代码如下:

models.py

class userProfile(models.Model):

    def url(self, filename):
        ruta = "MultimediaData/Users/%s/%s"%(self.user.username, filename)
        return ruta

    user    =   models.ForeignKey(User, unique=True)
    photo    =   models.ImageField(upload_to= url)
    telefono=   models.CharField(max_length=30)

    def __srt__(self):
        return self.user.username

forms.py

class userProfileForm(forms.Form):
    class Meta:
        model = userProfile

views.py

def perfil_view(request):
    if request.method == 'POST':
         form = userProfileForm(request.POST)
         if form.is_valid():
            user = request
            perfil = userProfileForm(user = form.cleaned_data.get('user'),
                                    photo = form.cleaned_data['photo'],
                                    telefono = form.cleaned_data['telefono'],
                                    )
            perfil.save()
            ctx ={'form':form}
            return render_to_response('prueba.html',ctx,context_instance=RequestContext(request))
         else:
            ctx ={'form':form}
            return render_to_response('perfil.html',ctx,context_instance=RequestContext(request))
    else:
         form = userProfileForm()
    ctx ={'form':form}
    return render_to_response('prueba.html',ctx,context_instance=RequestContext(request))

prueba.html

{% extends "base2.html" %}
{% block title %}Prueba{% endblock %}
{% block content %}
    <form action="." method="post">
            {% csrf_token %}
        {{ form.as_p }}
    <input type="submit" value="Submit">
    </form>
{% endblock %}

settings.py

AUTH_PROFILE_MODULE = 'melomanos.userProfile'

尝试使用:

return render(request, 'prueba.html', ctx)

而不是

return render_to_response('prueba.html',ctx,context_instance=RequestContext(request))

此外,不要忘记按如下方式导入渲染:

from django.shortcuts import render