django AttributeError / 'str'对象没有属性'objects'

jxct1oxe  于 2023-11-20  发布在  Go
关注(0)|答案(2)|浏览(142)

你好,我是django和python的新手,这个错误花了我很多时间,我不知道问题在哪里

views.py

    currentUser = request.user

        assert isinstance(category.objects, object)
        categoryData = category.objects.get(categoryName=category)
        newListing = Listing(`            title=title,
            description=description,
            imageurl = imageurl,
            price=price,
            Category=categoryData,
            owner=currentUser
        )
        newListing.save()
        return HttpResponseRedirect(reverse(index)) 

models.py

个字符
我尝试了很多方法,但都失败了

ctzwtxfj

ctzwtxfj1#

你需要在这一行大写“Category.objects”
第一个月
使其
categoryData = Category.objects.get(categoryName=category)

mbskvtky

mbskvtky2#

查看您提供的代码,似乎您使用相同的变量名称category作为模型名称和(slug?)参数。必须通过slug参数名称更改来解决。(P.S. category在对象过滤和category.objects中)

编辑

当你使用objects.get(...)方法的时候,你也总是要捕获一个异常,因为如果它找不到任何对象,它会抛出DoesNotExist异常。**注意!**只有当你完全确定它只从db返回一个对象的时候,你才应该使用这个方法。否则你还必须捕获MultipleObjectsReturned异常。
也可以考虑使用get_object_or_404。但请记住,它只捕获DoesNotExist异常。
用法示例:

try:
    Category.objects.get(**kwargs)
except Category.DoesNotExist:
    raise Http404('No categoryfound')  # or return HttpResponse with status code 404
except Category.MultipleObjectsReturned:
    ...  # etc

字符串

相关问题