Django AttributeError:“ int”对象没有属性“ save”

时间:2018-11-24 23:47:54

标签: django python-3.x django-views

我有2个模型个人资料和事件。我想将用户创建的事件数保存到用户个人资料中,这样即使事件被删除,记录仍保留在用户个人资料中

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    total_events = models.IntegerField(default=0) 

class Event(models.Model):
    user = models.ForeignKey(User, related_name='seller')
    ...

以下是我的观点

class CreateEvent(IsVerifiedMixin, CreateView):
    model = Event
    form_class = EventForm
    template_name = 'event/event_form.html'

    def form_valid(self, form, *args, **kwargs):
        self.object = form.save(commit=False)
        self.object.user = self.request.user
        print(self.object.user.profile.total_events) #This prints 0
        self.object.user.profile.total_events += 1
        print(self.object.user.profile.total_events) # This prints 1
        self.object.user.profile.total_events.save() # If I don't use this statement it does not save to database. But It gives me the above error
        self.object.save()
        return super().form_valid(form)
  

此行self.object.user.profile.total_events.save()给我错误

如何解决此错误。我尝试添加一个变量并保存该变量,但仍然遇到相同的错误

1 个答案:

答案 0 :(得分:1)

total_events是一个整数,它是Profile模型的一部分。

您要在模型实例而不是模型字段上执行保存。

self.objects.user.profile.save()应该可以工作