【发布时间】:2018-05-04 03:55:06
【问题描述】:
我收到以下错误:
/admin/KSUvity/activity/add/ 处的 TypeError 强制转换为 Unicode:需要 字符串或缓冲区,用户找到
models.py:
class Activity(models.Model):
type = models.CharField(max_length=50, default="")
title = models.CharField(max_length=200, default="")
description = models.CharField(max_length=500)
owner = models.ForeignKey(User, related_name="owner")
college = models.CharField(max_length=200)
location = models.CharField(max_length=200)
room = models.CharField(max_length=200)
startDate = models.DateTimeField(null=True, blank=True)
endDate = models.DateTimeField(null=True, blank=True)
attendee = models.ManyToManyField(Attendee, related_name="attendees",null=True, blank=True)
volunteer = models.ManyToManyField(Volunteer, related_name="volunteers",null=True, blank=True)
created_time = models.DateTimeField(editable=False, auto_now= True)
modified_time = models.DateTimeField(null=True, blank=True)
def __str__(self):
return '%s (%s)' % (self.title, self.description)
def __unicode__(self):
return unicode(self.user)
def save(self, *args, **kwargs):
''' On save, update timestamps '''
if not self.id:
self.created = timezone.now()
self.modified = timezone.now()
return super(Activity, self).save(*args, **kwargs)
class Attendee(models.Model):
student = models.ForeignKey(User, related_name="attendee")
def __str__(self):
return self.student
在forms.py中:
class ActivityForm(forms.ModelForm):
class Meta:
model = Activity
fields = ('type', 'title', 'description', 'owner', 'college', 'location', 'room', 'startDate', 'endDate', 'attendee', 'volunteer', )
我曾经从管理页面获取活动表单并添加活动。 但我突然开始得到这个错误。 可能是什么问题?
【问题讨论】:
-
您是否将您的所有者字段留空?如果你想这样做,你必须
null=True, blank=True在那里你创建了所有者字段。 -
尝试将
def __str__(self): return self.student改为def __str__(self): return '%s' % self.student -
@AbhishekMenon 我不会将所有者字段留空,因为由于此错误,我没有收到表单。
-
@RuudHelderman 尝试了该解决方案,但它对我不起作用。