1

私は ValueError を受け取っており、一生バグを理解することはできません。このエラーは、予想よりも多くの値が変数に渡されていることを意味していることは承知していますが (つまり、(x, y) = 1, 2, 3)、なぜそれが問題なのかわかりません。

これはエラーがある場所です(views.pyファイル内):

## image_pks is just a list of ImageItem primary keys (eg, [1, 2] or [5])
queryset = ImageItem.objects.filter(pk__in=image_pks)
ImageInfoFormset = modelformset_factory(ImageItem, fields=('title', 'caption'), extra=0)
formset = ImageInfoFormset(queryset) ## Error happening here!!!

ImageItem モデルは次のようになります。

class ImageItem(models.Model):
    user = models.ForeignKey(User)
    upload_date = models.DateTimeField(auto_now_add=True)
    last_modified = models.DateTimeField(auto_now=True)
    library = models.ForeignKey(Library)
    img_big = models.ImageField(upload_to=img_get_file_path)
    img_363 = models.ImageField(upload_to=img_get_file_path)
    title = models.CharField(max_length=50,
                             blank=True)
    caption = models.CharField(max_length=1000,
                               blank=True)

これは、トレースバックに関する情報です。

ここに画像の説明を入力 ここに画像の説明を入力

トレースバックのローカル変数は次のとおりです。

ここに画像の説明を入力

さらに情報が必要な場合はお知らせください。ありがとうございます。

編集: 提供されたトレースバック全体を次に示します。

Traceback:
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/Users/sgarza62/riotry_master/riotry/backboard_general/views.py" in Backboard_Home
  44.                 formset = ImageInfoFormset(queryset) # TOO MANY VALUES ERROR HERE!
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/models.py" in __init__
  424.         super(BaseModelFormSet, self).__init__(**defaults)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/formsets.py" in __init__
  50.         self._construct_forms()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/formsets.py" in _construct_forms
  114.         for i in xrange(self.total_form_count()):
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/formsets.py" in total_form_count
  88.             return self.management_form.cleaned_data[TOTAL_FORM_COUNT]
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/formsets.py" in _management_form
  74.             if not form.is_valid():
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/forms.py" in is_valid
  124.         return self.is_bound and not bool(self.errors)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/forms.py" in _get_errors
  115.             self.full_clean()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/forms.py" in full_clean
  270.         self._clean_fields()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/forms.py" in _clean_fields
  281.             value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name))
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/forms/widgets.py" in value_from_datadict
  205.         return data.get(name, None)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/query.py" in get
  358.         clone = self.filter(*args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/query.py" in filter
  624.         return self._filter_or_exclude(False, *args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/query.py" in _filter_or_exclude
  642.             clone.query.add_q(Q(*args, **kwargs))
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/sql/query.py" in add_q
  1250.                             can_reuse=used_aliases, force_having=force_having)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/sql/query.py" in add_filter
  1056.         arg, value = filter_expr

Exception Type: ValueError at /backboard/
Exception Value: too many values to unpack

EDIT 2 : 私はそれをいじっていますが、何か奇妙なことが起こっています。行queryset = ImageItem.objects.filter(pk__in=image_pks)queryset = ImageItem.objects.get(pk=10)(10 は任意の ID) に変更すると、次のエラーが発生します: AttributeError: 'ImageItem' object has no attribute 'get'元の問題のある行がエラーをスローしています!

ImageItem は単なる通常のモデルであるため、これは奇妙なエラーです。もちろん、それは属性を持っています'get'。これは、クエリセットが問題のある行で最初に評価されているという事実と関係がありますか ( formset = ImageInfoFormset(queryset))? クエリが作成された後、評価される前に ImageItem が別のものに割り当てられていますか?

4

2 に答える 2

0

`formset = ImageInfoFormset(queryset.values()) で試してみます

formset = ImageInfoFormset(queryset.values())

それ以外の

formset = ImageInfoFormset(queryset)

于 2013-01-31T19:19:57.430 に答える