2014-06-12 126 views
2

我需要为一组操作显示用户的提要。我为此使用了Django Activity Stream。我刚开始测试应用程序,但似乎无法显示用户供稿。ValueError at/feed/- int()与基数为10的无效文字

由于每Action Stream documentation我使用的actor_stream功能如下

from actstream.models import actor_stream 

def user_feed(request): 
    print actor_stream(request.user) 

这给了我一个错误

ValueError at /feed/ 
invalid literal for int() with base 10: '<property object at 0x2a6a520>' 

这里是回溯

Traceback: 
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 
    114.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/home/jaskaran/coding/buyingiq/authentication/feed/views.py" in user_feed 
    7. print actor_stream(request.user) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in __repr__ 
    71.   data = list(self[:REPR_OUTPUT_SIZE + 1]) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in __iter__ 
    96.   self._fetch_all() 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in _fetch_all 
    856.    self._prefetch_related_objects() 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in _prefetch_related_objects 
    517.   prefetch_related_objects(self._result_cache, self._prefetch_related_lookups) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in prefetch_related_objects 
    1598.     obj_list, additional_prl = prefetch_one_level(obj_list, prefetcher, attr) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in prefetch_one_level 
    1697.   prefetcher.get_prefetch_queryset(instances) 
File "/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/generic.py" in get_prefetch_queryset 
    96.    ret_val.extend(ct.get_all_objects_for_this_type(pk__in=fkeys)) 
File "/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/models.py" in get_all_objects_for_this_type 
    174.   return self.model_class()._base_manager.using(self._state.db).filter(**kwargs) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in filter 
    590.   return self._filter_or_exclude(False, *args, **kwargs) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in _filter_or_exclude 
    608.    clone.query.add_q(Q(*args, **kwargs)) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/query.py" in add_q 
    1198.   clause = self._add_q(where_part, used_aliases) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/query.py" in _add_q 
    1234.      current_negated=current_negated) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/query.py" in build_filter 
    1125.   clause.add(constraint, AND) 
File "/usr/local/lib/python2.7/dist-packages/django/utils/tree.py" in add 
    104.   data = self._prepare_data(data) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/where.py" in _prepare_data 
    79.    value = obj.prepare(lookup_type, value) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/where.py" in prepare 
    352.    return self.field.get_prep_lookup(lookup_type, value) 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py" in get_prep_lookup 
    371.    return [self.get_prep_value(v) for v in value] 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py" in get_prep_value 
    613.   return int(value) 

Exception Type: ValueError at /feed/ 
Exception Value: invalid literal for int() with base 10: '<property object at 0x2a6a520>' 

print type(actor_stream(request.user))评估为<class 'actstream.gfk.GFKQuerySet'>

我甚至试图将它作为一个列表打印,然后打印它,但它仍然会抛出相同的错误。我应该如何在我的视图中访问演员流?

编辑 - 我使用自定义用户模型,如果有任何区别。

EDIT 2 - 回溯使用艾略特的解决方案

Traceback: 
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 
    101.     resolver_match = resolver.resolve(request.path_info) 
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in resolve 
    318.    for pattern in self.url_patterns: 
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in url_patterns 
    346.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in urlconf_module 
    341.    self._urlconf_module = import_module(self.urlconf_name) 
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module 
    40.   __import__(name) 
File "/home/jaskaran/coding/buyingiq/authentication/authentication/urls.py" in <module> 
    7. admin.autodiscover() 
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/__init__.py" in autodiscover 
    29.    import_module('%s.admin' % app) 
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module 
    40.   __import__(name) 
File "/usr/local/lib/python2.7/dist-packages/allauth/account/admin.py" in <module> 
    9. class EmailAddressAdmin(admin.ModelAdmin): 
File "/usr/local/lib/python2.7/dist-packages/allauth/account/admin.py" in EmailAddressAdmin 
    16.            'last_name']))) 
File "/usr/local/lib/python2.7/dist-packages/allauth/account/admin.py" in <lambda> 
    13.          filter(lambda a: a and hasattr(User(), a), 
File "/home/jaskaran/coding/buyingiq/authentication/users/models.py" in __init__ 
    86.   return self.pk 
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in _get_pk_val 
    465.   return getattr(self, meta.pk.attname) 

Exception Type: AttributeError at /feed/ 
Exception Value: 'UserProfile' object has no attribute 'id' 
+0

你有没有设法解决这个问题?我也遇到了这个问题 –

回答

0

如果你这样做,而不是:

from actstream.models import actor_stream 

def user_feed(request): 
    print actor_stream(request.user.pk) # added .pk here 

正如你可以在堆栈跟踪(return int(value))结束时看到,Django的尝试将request.user转换为整数。我认为它失败了,因为您使用自定义用户模型,并且没有在其中定义任何__int__方法。试着在你的用户模型有这个方法:

类的usermodel(models.Model):

# your logic here 

def __int__(self): 
    return self.pk 
+0

这会抛出错误'AttributeError at/feed /'UserProfile'对象没有属性'id''。我已经追溯到原始问题。 – user3725362

+0

嗡嗡声'异常值:'UserProfile'对象没有属性'id''很奇怪。 'Request.user'是一个'UserProfile'实例,而不是'YourUserModel'实例。你能提供你自定义的usermodel的代码吗? –

相关问题