【问题标题】:Form not showing in html - django表单未在 html 中显示 - django
【发布时间】:2015-07-31 20:34:42
【问题描述】:

我有一个扩展 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'

【问题讨论】:

标签: python django django-models django-forms modelform


【解决方案1】:

尝试使用:

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

而不是

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

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

from django.shortcuts import render

【讨论】:

    猜你喜欢
    • 2019-11-06
    • 1970-01-01
    • 2020-01-23
    • 2020-06-03
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多