Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误';x';对象没有属性'__获取项目';_Python_Django_Typeerror - Fatal编程技术网

Python 类型错误';x';对象没有属性'__获取项目';

Python 类型错误';x';对象没有属性'__获取项目';,python,django,typeerror,Python,Django,Typeerror,我得到了错误 当我在管理界面中保存新的CampCon条目时。我有一个名为campsites的应用程序来处理营地数据库,还有一个名为content的应用程序来处理评论。我是Django的新手,这是我的第一个非教程项目。我一直在绞尽脑汁,在网上搜索答案,但运气不佳。提前感谢您的帮助。 这是我的营地模型: from django.contrib.gis.db import models class CampSite(models.Model): name = models.CharField

我得到了错误

当我在管理界面中保存新的CampCon条目时。我有一个名为campsites的应用程序来处理营地数据库,还有一个名为content的应用程序来处理评论。我是Django的新手,这是我的第一个非教程项目。我一直在绞尽脑汁,在网上搜索答案,但运气不佳。提前感谢您的帮助。 这是我的营地模型:

from django.contrib.gis.db import models

class CampSite(models.Model):
    name = models.CharField(max_length=250)
    showers = models.BooleanField()
    flush = models.BooleanField()
    rv = models.BooleanField()
    lonlat = models.PointField(null=True, blank=True)

    objects = models.GeoManager()

    def __unicode__(self):
        return self.name
以下是内容模型:

from django.contrib.gis.db import models
from campsites.models import CampSite
from django.contrib.auth.models import User
from activities.models import Activities


class CampCon(models.Model):
    campsite = models.ForeignKey(CampSite)
    trip = models.ForeignKey('Trip')
    Date = models.DateField()
    user = models.ForeignKey(User)
    overall_review = models.TextField()
    facilities_review = models.IntegerField()
    things_to_do = models.IntegerField()
    privacy = models.IntegerField()
    beauty = models.IntegerField()
    overall_rating = models.IntegerField()

    def __unicode__(self):
        return self.campsite

class ImageDB(models.Model):
    campsite = models.ForeignKey(CampSite)
    user = models.ForeignKey(User)
    description = models.CharField(max_length=200)
    image = models.ImageField(upload_to='/home/bobby/Pictures/CampThat')
    date_uploaded = models.DateField()
    date_taken = models.DateField()
    trip = models.ForeignKey('Trip')
    activity = models.ForeignKey(Activities)

    def __unicode__(self):
        return self.campsite

class Trip(models.Model):
    date = models.DateField()
    description = models.CharField(max_length=100)
    title = models.CharField(max_length=100)
    blog = models.TextField()

    def __unicode__(self):
        return self.title

class ActivityCon(models.Model):
    trip = models.ForeignKey(Trip)
    rating = models.IntegerField()
    overall_review = models.TextField()
    activity = models.ForeignKey(Activities)
以下是完整的回溯:

    Environment:


Request Method: POST
Request URL: http://localhost:8000/admin/content/campcon/add/

Django Version: 1.5
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'campsites',
 'auth',
 'trips',
 'content',
 'activities',
 'django.contrib.admin')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  116.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper
  367.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  91.                     response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  89.         response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
  202.             return view(request, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
  25.             return bound_func(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  91.                     response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
  21.                 return func(self, *args2, **kwargs2)
File "/usr/lib/python2.7/site-packages/django/db/transaction.py" in inner
  208.                 return func(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/contrib/admin/options.py" in add_view
  958.                 self.log_addition(request, new_object)
File "/usr/lib/python2.7/site-packages/django/contrib/admin/options.py" in log_addition
  525.             action_flag     = ADDITION
File "/usr/lib/python2.7/site-packages/django/contrib/admin/models.py" in log_action
  18.         e = self.model(None, None, user_id, content_type_id, smart_text(object_id), object_repr[:200], action_flag, change_message)

Exception Type: TypeError at /admin/content/campcon/add/
Exception Value: 'CampSite' object has no attribute '__getitem__'

您的问题是,
\uuuuuunicode\uuuu
函数在需要返回unicode字符串时返回模型对象

您可以通过将
unicode()
函数添加到
\uuuunicode\uuuu
方法来实现这一点:

class CampCon(models.Model):
    campsite = models.ForeignKey(CampSite)
    trip = models.ForeignKey('Trip')
    Date = models.DateField()
    user = models.ForeignKey(User)
    overall_review = models.TextField()
    facilities_review = models.IntegerField()
    things_to_do = models.IntegerField()
    privacy = models.IntegerField()
    beauty = models.IntegerField()
    overall_rating = models.IntegerField()

    def __unicode__(self):
        return unicode(self.campsite)

class ImageDB(models.Model):
    campsite = models.ForeignKey(CampSite)
    user = models.ForeignKey(User)
    description = models.CharField(max_length=200)
    image = models.ImageField(upload_to='/home/bobby/Pictures/CampThat')
    date_uploaded = models.DateField()
    date_taken = models.DateField()
    trip = models.ForeignKey('Trip')
    activity = models.ForeignKey(Activities)

    def __unicode__(self):
        return unicode(self.campsite)

这将调用
CampSite.\uuuu unicode\uuuu
返回
CampSite.name

使用此方法:

   def __unicode__(self):
        return unicode(self.campsite)

如果您这样做,也会发生这种情况:

event_name = CharField(max_length = 250)
而不是这样:(正确的方式)


可能对某人有帮助,因为这是谷歌的第一次成功:我在执行以下操作时遇到了类似的错误(
'ItemGroup'对象没有属性'\uu getitem'
):

class ItemGroup(models.Model):
    groupname = models.CharField(max_length=128)

    def __unicode__(self):
        return "%s" % self.groupname

class Item(models.Model):
    name = models.CharField(max_length=128)
    group = models.ForeignKey(MedGroup, verbose_name="Groep")

    def __unicode__(self):
        return "%s (%s)" % (self.name, self.group[:10])
最后一行错了


将该行替换为
返回“%s(%s)”%(self.name,self.group.groupname[:10])

谢谢!你刚刚救了我。
event_name = models.CharField(max_length = 250)
class ItemGroup(models.Model):
    groupname = models.CharField(max_length=128)

    def __unicode__(self):
        return "%s" % self.groupname

class Item(models.Model):
    name = models.CharField(max_length=128)
    group = models.ForeignKey(MedGroup, verbose_name="Groep")

    def __unicode__(self):
        return "%s (%s)" % (self.name, self.group[:10])