我的应用程序允许您喜欢图片然后将您重定向到同一页面
当我尝试想要一张图片时我得到错误我可以用shell提示创建一个类似的对象,但为什么我会收到此错误?谢谢你的帮助
AttributeError at /like/3/
function' object has no attribute 'objects'Request Method: GET
Request URL: http://127.0.0.1:8000/like/3/
Exception Value: 'function' object has no attribute 'objects'
Traceback:
File "C:\Python26\Lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "C:\o\mysite\pet\views.py" in Like
195. new_like, created = Like.objects.get_or_create(user=request.user, picture_id=picture_id)
Run Code Online (Sandbox Code Playgroud)
这是我的views.py的一部分
def Like(request,picture_id):
pid = picture_id
new_like, created = Like.objects.get_or_create(user=request.user, picture_id=picture_id)
p = Picture.objects.get(pk=pid)
if created:
HttpResponseRedirect(reverse('world:url_name'))
else:
HttpResponseRedirect(reverse('world:url_name'))
Run Code Online (Sandbox Code Playgroud)
我的URLconf:
url(
Run Code Online (Sandbox Code Playgroud)
我的模特的部分:r'^ like /(?P\d +)/ $','pet.views.Like',name ='Like'),我的boat.html
{% if picture %}
<ul>
{% for pet in picture %}
<li><b>description</b> = {{ pet.description}}<br/>
{% if pet.image %}
<li>
<a href ="{% url world:Like pet.id %}">
<img src= "{{ pet.image.url }}" style="cursor:pointer">
</a>
<li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
<a href="{% url world:PictureCreator %}">Add Pictures to your board</a><br/>
Run Code Online (Sandbox Code Playgroud)
我的models.py
class Picture(models.Model):
user = models.ForeignKey(User)
board = models.ForeignKey(Board,blank=False,null=False)
image = models.FileField(upload_to="images/",blank=True)
description = models.TextField()
is_primary = models.BooleanField(default=False)
def __unicode__(self):
return self.description
class Like(models.Model):
user = models.ForeignKey(User)
picture = models.ForeignKey(Picture)
created = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
dm0*_*514 13
您的视图函数名称定义为,Like并且您的模型已命名Like
你定义Like为一个函数,所以当你去访问Like.objectspython 时,你看不到你的模型Like而是函数Like
你可以重命名你的视图功能
url(r'^like/(?P\d+)/$', 'pet.views.change_name_no_conflict', name = 'Like' )
def change_name_no_conflict(request,picture_id):
pass
Run Code Online (Sandbox Code Playgroud)