Я изо всех сил пытаюсь понять, как чего-то достичь, и буду признателен, если кто-то предложит правильный Django способ сделать это.
У меня есть пользовательская модель, которая довольно проста c, но включает в себя BooleanField, в котором указано, заполнили ли они форму добровольного равенства и разнообразия. Существует очень базовая модель c, которая содержит данные форм равенства и разнообразия без какой-либо ссылки на пользователей, заполнивших каждый ответ. Что я хочу, так это, когда пользователь заполняет действительную форму равенства и разнообразия, он помещает True в поле пользовательской модели, чтобы сказать, что он заполнил форму.
Я был бы очень признателен, если бы кто-нибудь знал правильное способ сделать это, поскольку я завязываю себя в узлы и запутался.
Вот упрощенная версия кода:
users / models.py
class CustomUser(AbstractUser):
# Has the user completed the EDI form?
edi = models.BooleanField(default=False)
def get_absolute_url(self):
return reverse('profile', args=[str(self.username)])
равенства_диверсити / models.py
class EqualityDiversity(models.Model):
age = models.CharField(max_length=8, choices=AGE_CHOICES)
ethnicity = models.CharField(max_length=64, blank=True, null=True)
... (etc)
равенства_диверсити / views.py
class EqualityDiversityView(LoginRequiredMixin, CreateView):
model = EqualityDiversity
template_name = 'equality_diversity.html'
form_class = EqualityDiversityForm
login_url = 'login'
success_url = '/'
def form_valid(self, form):
return super().form_valid(form)