Редактирование полей внешнего ключа в шаблоне

Я не знаю, как я могу редактировать поля внешнего ключа из шаблона другой модели - мои изменения не обновляют модель на post, см. ниже.

модели

class Projects(models.Model):
    name = models.CharField(max_length=250)

class Current(models.Model):
    fk_user = models.OneToOneField(User, on_delete=models.CASCADE)
    fk_project = models.ForeignKey(projects, default='1', on_delete=models.CASCADE)

просмотров

class current(LoginRequiredMixin, UserPassesTestMixin, UpdateView):

    model = Current
    fields = [
    'fk_project'
    ]
    template_name = 'users/current.html'
    context_object_name = 'current'


    def form_valid(self, form):
        form.instance.fk_user = self.request.user
        form.save()
        # return super().form_valid(form)
        return HttpResponseRedirect(self.request.path_info)

    def test_func(self):
        post = self.get_object()
        if self.request.user == post.fk_user:
            return True
        return False

current.html

<form method="POST">{% csrf_token %}

<input type="text" value="{{ current.fk_project.name }}"/>

<button type="submit">post</button>

Я бы предложил вам изменить form_valid, чтобы он соответствовал обычным соглашениям. Не знаю, исправит ли это проблему, но

def form_valid(self, form):
    instance = form.save( commit=False)
    instance.fk_user = self.request.user
    instance.save()
    # return super().form_valid(form)
    return HttpResponseRedirect(self.request.path_info)
Вернуться на верх