Django AttributeError: у объекта 'int' нет атрибута 'save' - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть 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 голосов
/ 25 ноября 2018

total_events - это целое число, являющееся частью вашей Profile модели.

, которое требуется выполнить для сохранения в экземпляре модели, а не в поле модели.

self.objects.user.profile.save() должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...