gpt4 book ai didi

python - Django: TypeError at/categories/sequence item 0: expected str instance, Category 找到

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:29 25 4
gpt4 key购买 nike

我正在尝试使用 Django 编写一本电子短语手册,以帮助人们学习语言。或者实际上是具有新功能的旧版本的新版本。无论如何,我在这里的前几米被严重困住了。

我已将一些对象添加到数据库并希望在“类别”URL 中显示它们。第一个网址 http://127.0.0.1:8000/工作得很好,给了我一个美妙的 Hello World 。但是,我需要将新应用程序连接到项目,当我尝试打开应用程序的 url 时 http://127.0.0.1:8000/categories/ ,浏览器给我这个:

TypeError at /categories/
sequence item 0: expected str instance, Category found

我的控制台提示应用程序的 view.py,并在其中提示第 9 行 output = ', '.join(categories)。我找不到任何问题。这是整个 views.py:

from django.http import HttpResponse
from django.shortcuts import render

from .models import Category


def category_list(request):
categories = Category.objects.all()
output = ', '.join(categories)
return HttpResponse(output)

这是应用程序的 url.py:

from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^$', views.category_list),
]

这是主要的 url.py:

from django.conf.urls import url, include
from django.contrib import admin

from . import views

urlpatterns = [
url(r'^categories/', include('phrasebooktwo.urls')),
url(r'^admin/', admin.site.urls),
url(r'^$', views.hello_world),
]

这是项目树:

bigboy_phrasebook
├── bigboy_phrasebook
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   ├── settings.cpython-35.pyc
│   │   ├── urls.cpython-35.pyc
│   │   ├── views.cpython-35.pyc
│   │   └── wsgi.cpython-35.pyc
│   ├── settings.py
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
├── db.sqlite3
├── manage.py
└── phrasebooktwo
├── __init__.py
├── __pycache__
│   ├── __init__.cpython-35.pyc
│   ├── admin.cpython-35.pyc
│   ├── models.cpython-35.pyc
│   ├── urls.cpython-35.pyc
│   └── views.cpython-35.pyc
├── admin.py
├── apps.py
├── migrations
│   ├── 0001_initial.py
│   ├── __init__.py
│   └── __pycache__
│   ├── 0001_initial.cpython-35.pyc
│   └── __init__.cpython-35.pyc
├── models.py
├── tests.py
├── urls.py
└── views.py

如何让我的类别页面正常工作?预先感谢您的帮助。

最佳答案

在使用 join() 之前,您必须使用 str() 或 repr() 或任何其他返回类别对象字符串的方法。让我通过一个简单的例子来解释这一点:

class Category:
def __init__(self, name):
self.name = name


items = [Category('jam')]
out = ', '.join(items)
print(out)

如果你运行这段代码,你会得到“TypeError: sequence item 0: expected str instance, Category found”

因此,您必须按如下方式修改代码:

class Category:
def __init__(self, name):
self.name = name

def __str__(self):
return self.name


items = [Category('jam').__str__()]
out = ', '.join(items)
print(out)

关于python - Django: TypeError at/categories/sequence item 0: expected str instance, Category 找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45269255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com