Создание функции в приложении, которая изменяет поля в другом приложении - PullRequest
0 голосов
/ 03 июля 2018

Привет Джангонаутс, Я новичок в Django, поэтому, пожалуйста, прости любые ошибки в логике или коде У меня есть приложение для учетных записей, в котором есть модель профиля с полем is_verified Теперь у меня есть другое приложение под названием «Проверка». Это модель проверки и поле с именем verify Я хочу создать логику, чтобы при проверке пользователя в приложении проверки. Приложение is_verified в профиле также помечено как True

models.py для профиля

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    city = models.CharField(max_length=100)
    country = models.CharField(max_length=100)
    is_verified = models.BooleanField(default=False)

models.py для проверки

class Verification(models.Model):
    user = models.ForeignKey(User, related_name='verified')
    applied_on = models.DateTimeField(auto_now_add=True)
    verify = models.BooleanField(default=False)
    deny = models.BooleanField(default=False)
    verified_on = models.DateTimeField()
    denied_on = models.DateTimeField()

    def verify_a_user(self, user):
        self.verify = True
        user.profile.is_verified = True
        return user.profile.is_verified.save() 

Это правильно? Есть ли лучший способ выполнить этот код

1 Ответ

0 голосов
/ 03 июля 2018

Взгляните на https://docs.djangoproject.com/en/2.0/topics/signals/

Отправьте сигнал pre_save или post_save из вашей модели верификации. https://docs.djangoproject.com/en/2.0/ref/signals/#django.db.models.signals.pre_save https://docs.djangoproject.com/en/2.0/ref/signals/#django.db.models.signals.post_save

Затем зарегистрируйте функцию слушателя в вашем приложении Profile.

Для деталей и примера

https://docs.djangoproject.com/en/2.0/topics/signals/#connecting-to-signals-sent-by-specific-senders

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