尝试基于tutorial创建一个Django应用程序但使用不同的模型。(第一次使用Djanago)
我正处于您更改“管理”面板以添加具有从属外键的3个项目的部分。
我知道问题来自
class EventAdmin(admin.ModelAdmin):
在admin.py的第10行,但我不确定如何安排字段使其工作。
管理面板工作,直到我尝试创建一个有3个选项的事件。然后我收到以下错误... 强制转换为Unicode:需要字符串或缓冲区,找到位置
代码如下......
from django.db import models
class Location(models.Model):
icon = models.CharField(max_length=200)
location = models.CharField(max_length=200)
def __unicode__(self):
return self.location
class Event(models.Model):
location = models.ForeignKey(Location)
info = models.CharField(max_length=200)
def __unicode__(self):
return self.location
class Choice(models.Model):
event = models.ForeignKey(Event)
choice = models.CharField(max_length=200)
link = models.CharField(max_length=200)
def __unicode__(self):
return self.choice
from map.models import Location
from map.models import Event
from map.models import Choice
from django.contrib import admin
class ChoiceInline(admin.StackedInline):
model = Choice
extra = 4
class EventAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['location', 'info']}),
]
inlines = [ChoiceInline]
admin.site.register(Event, EventAdmin)
admin.site.register(Location)
答案 0 :(得分:4)
.__unicode__()
方法应返回unicode
个对象。
您的Event.__unicode__()
会返回self.location
个Location
个实例。要么将self.location
投射到unicode
,要么明确引用Location
对象中的字段。
def __unicode__(self):
return u'%s' % (self.location, )
def __unicode__(self):
return self.location.location