【发布时间】:2013-03-08 11:22:34
【问题描述】:
我正在尝试向我现有的应用程序添加一项新功能,让用户可以创建个人资料并上传他们的宠物照片。
当用户登录时,他会被重定向到显示他的名字的个人资料中,并且他可以将自己的照片添加到模型中,该模型将显示在个人资料页面上。
目前,我可以将名称检索到模板中,但似乎无法同时显示用户名称和上传图片。
每当我点击添加图片时,它不会让用户上传图片而是我收到此错误
'PictureForm' object has no attribute 'save'
pet = form.save(commit =False) ...
我可以设计页面让用户上传图片但不同时显示名称。
我认为问题在于我的 profile.html 和 view.py 中的 Profile 函数
我的部分观点.py
@login_required
def Profile(request):
Person = request.user.get_profile()
if not request.user.is_authenticated():
return HttpResponseRedirect('/login/')
if request.method == "POST":
form = PictureForm(request.POST ,request.FILE or None)
if form.is_valid():
pet = form.save(commit =False)
pet.save()
context = (
{'Person': Person} ,
{'form':PictureForm()}
)
return render_to_response('profile.html', context, context_instance=RequestContext(request))
我的部分表单.py
from django import forms
from django.contrib.auth.models import User
from django.forms import ModelForm
from pet.models import *
class PictureForm(forms.Form):
class Meta:
model = Person
fields = ('image')
我的个人资料.html
{% if Person %}
<ul>
<li>Name : {{Person.name}} </li>
</ul>
{% endif %}
<form method="POST" enctype="multipart/form-data" "action" >
{% csrf_token %}
<ul>
{{ form.as_ul }}
</ul>
<input type = "submit" value= "Add Picture" />
</form>
我的models.py
from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User
class Person(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=100)
image = models.FileField(upload_to="images/",blank=True,null=True)
def __unicode__(self):
return self.name
class Pet(models.Model):
Person = models.ForeignKey(Person)
description = models.CharField(max_length=100)
image = models.FileField(upload_to="images/",blank=True,null=True)
def __unicode__(self):
return self.description
【问题讨论】:
-
PictureForm(request.POST ,
request.FILES或无)
标签: django