【问题标题】:Why am I getting this Django TypeError?为什么我会收到这个 Django TypeError?
【发布时间】: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 尝试了该解决方案,但它对我不起作用。

标签: python django


【解决方案1】:

尝试改变

def __str__(self):
    return self.student

def __str__(self):
    return '%s' % self.student

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 2019-12-21
    • 2011-06-11
    相关资源
    最近更新 更多