【发布时间】:2017-11-06 10:59:20
【问题描述】:
我想制作更改模型信息用户的更新页面。 我的程序是berow。
#urls.py
url(r'^user_edit/(?P<pk>\d+)$', views.UserEdit.as_view(), name='user_edit'),
#models.py
from datetime import datetime
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class User(User):
name = models.CharField(max_length=200, default='Null')
post = models.CharField(max_length=9, default='Null')
bank = models.CharField(max_length=200, default='Null')
mail = models.CharField(max_length=200, default='Null')
address1 = models.CharField(max_length=200, default='Null')
address2 = models.CharField(max_length=200, default='Null')
address3 = models.CharField(max_length=200, default='Null')
tel = models.CharField(max_length=15, default='Null')
fax = models.CharField(max_length=15, default='Null')
#views.py
from .forms import InvoiceForm, UserForm, CustomerForm ,UserSignupForm
class UserEdit(generic.UpdateView):
model = User
form_class = UserForm
template_name = 'invo/user.html'
success_url = "invo/user_info"
# get current user object
def get_object(self, queryset=None):
return self.request.user
#forms.py
from django import forms
from .models import Invoice, User, Customer
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ["username", "email",'password','first_name', 'last_name', ]
#user.html [Template]
{% extends 'invo/base.html' %}
{% block content %}
<div class="gtco-section gtco-testimonial gtco-gray">
<div class="gtco-container">
<div class="row">
<div class="col-md-8 col-md-offset-2 gtco-heading text-center">
<h2>Update</h2>
</div>
</div>
<div class="row">
<h3>User Profile</h3>
<div class="row">
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li
{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
<form method="post">
{% csrf_token %}
<table>
{{ form.as_p }}
</table>
<input type="submit" value="change">
</form>
</div>
</div>
</div>
</div>
<!-- END .gtco-services -->
{% endblock%}
我的页面是这样的。它没有表单 这是html源代码。有Form。但它被隐藏了!!什么是问题?没有得到表单信息...?
#source
<h3>User Profile</h3>
<div class="row">
<form method="post">
<input type='hidden' name='csrfmiddlewaretoken' value='pLoy7OtBOunF70avjFRTt1wlaIwTIArfe8wkNmbVZOslAu6G4hiFoC8oRWVhcbID' />
<table>
</table>
<input type="submit" value="change">
</form>
</div>
我以同样的方式制作了另一个更新表单。但用户模型无法显示表单。 如果你知道这个问题。请帮助我。
【问题讨论】:
-
您没有显示
UserForm的定义位置。 -
我检查了 import 。但是 UserForm 被导入了。
标签: django django-models django-forms django-templates