Я хочу, чтобы иметь возможность изменять логическое значение «sendmail» для пользователя через мое представление. Но после добавления объекта один раз для пользователя со значением True, я больше не могу его изменить, потому что получаю «IntegrityError at/accounts/send_me_email/column user_id не уникален». Что я делаю не так?Изменение логического значения для объекта пользователя
models.py class SendMeMail(models.Model): user = models.ForeignKey(User, unique=True) sendmail = models.BooleanField()
views.py from userprofile.models import SendMeMail def send_me_email(request): """ Define if a user want email notifications or not """ # Check for current sendmail value and act accordingly sendme = SendMeMail(user=request.user) if sendme.sendmail == False: sendme.sendmail = True sendme.save() if sendme.sendmail == True: sendme.sendmail = False sendme.save() else: sendme.sendmail = True sendme.save()
Ofcourse! В моем коде все еще есть проблема, так как он зависает на False, когда он туда попадает, но я подозреваю, что это потому, что у меня есть два, если: s друг за другом, а последний всегда меняет его на False. – leffe
Да, просто измените второй, если на 'elif'. –