簡體   English   中英

為什么我會收到此錯誤? 太多值無法解包(預期 2)

[英]Why am I getting this error? too many values to unpack (expected 2)

我正在創建一個股票博客,並在 views.py 中定義了數據庫中的股票,但我不明白這個錯誤是什么意思,所以我需要一些幫助,在此先感謝。 這是相關的代碼部分,因此您可以看到這里發生了什么。

追溯


Traceback (most recent call last):
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\snin2\Desktop\basura\lapagina\app1\views.py", line 62, in StockView
    stock_sym = StockNames.objects.get(StockNames.objects.all())
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\query.py", line 404, in get
    clone = self._chain() if self.query.combinator else self.filter(*args, **kwargs)
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\query.py", line 904, in filter
    return self._filter_or_exclude(False, *args, **kwargs)
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\query.py", line 923, in _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\sql\query.py", line 1350, in add_q
    clause, _ = self._add_q(q_object, self.used_aliases)
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\sql\query.py", line 1377, in _add_q
    child_clause, needed_inner = self.build_filter(
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\sql\query.py", line 1247, in build_filter
    arg, value = filter_expr
ValueError: too many values to unpack (expected 2)

視圖.py

def StockView(request, sym):
    stock_sym = StockNames.objects.get(StockNames.objects.all())
    stock_posts = Post.objects.filter(stock__symbol=sym)
    
    
    return render(request, 'app1/stockview.html', {'stocks':stock_posts, 'sym':sym, 'stock_sym':stock_sym})

urls.py(最后一個 urlpattern)

from django.urls import path
from app1 import views
from .views import PostView, ArticleDetailView, AddPostView, UpdatePostView, DeletePostView, AddCategoryView, CategoryView, LikeView, MyPostsView, AddCommentView, UpdateCommentView, DeleteCommentView

app_name = 'app1'

urlpatterns = [
    path('post/', PostView.as_view(), name = 'Post'),
    path('article/<int:pk>', ArticleDetailView.as_view(), name = 'article-detail'),
    path('add_post/',AddPostView.as_view(), name='addpost'),
    path('update_post/<int:pk>', UpdatePostView.as_view(), name = 'updatepost'),
    path('delete_post/<int:pk>', DeletePostView.as_view(), name = 'deletepost'),
    path('add_category/', AddCategoryView.as_view(), name = 'add_category'),
    path('category/<str:cats>/', views.CategoryView, name = 'category'),
    path('category-list/', views.CategoryListView, name ='category-list'),
    path('like/<int:pk>/', views.LikeView, name = 'like_post'),
    path('my_posts/', views.MyPostsView.as_view(), name = 'my_posts'),
    path('article/<int:pk>/add_comment/', AddCommentView.as_view(), name = 'add_comment'),
    path('update_comment/<int:pk>', UpdateCommentView.as_view(), name = 'updatecomment'),
    path('delete_comment/<int:pk>', DeleteCommentView.as_view(), name = 'deletecomment'),
    path('stock/<str:sym>/', views.StockView, name = 'stock'),
]

模型.py

class StockNames(models.Model):
    name = models.CharField(max_length=255)
    symbol = models.CharField(max_length=255)

    def __str__(self):
        return self.symbol

        
    

class Post(models.Model):
    title = models.CharField(max_length= 255)
    header_image = models.ImageField(null = True, blank = True, upload_to = 'images/')
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    body = RichTextField(blank = True, null = True)
    #body = models.TextField()
    post_date = models.DateField(auto_now_add=True)
    category = models.CharField(max_length=255, default='coding')
    snippet = models.CharField(max_length=255)
    likes = models.ManyToManyField(User, related_name = 'blog_posts')
    stock = models.ForeignKey(StockNames, null=True, on_delete = models.CASCADE)

StockNames.objects.get中的get方法應該返回一行,並且它的正確參數類似於StockNames.objects.get(pk=1)如果您需要所有股票代碼(沒有任何過濾或排序),您可以使用 go :

    stock_sym = StockNames.objects.all()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM