Django формы для ввода нескольких паролей

Я пытаюсь клонировать linkr.ee только для обучения

Страница выглядит следующим образом: example

Каждый пользователь имеет свою страницу -На этой странице один пользователь может иметь несколько ссылок

Ссылка может иметь поле пароля, чтобы разблокировать ссылку, если пользователь установил пароль на True/False

Я создал модель здесь:

class Field(models.Model):
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        default=None,
        null=True,
        on_delete=models.CASCADE,
    )
    title = models.CharField(max_length=255)
    url = models.CharField(max_length=255)
    creator_adress = models.GenericIPAddressField(null=True)
    password_secured = models.BooleanField(default=False)
    password = models.CharField(max_length=100, blank=True, null=True)

Так, если установлен флажок password_secured (True/False), ссылка будет иметь поле для ввода пароля.

Моя проблема: У меня проблемы с предоставлением каждой ссылке одной страницы, которая защищена паролем формы.

Если одна ссылка имеет password_secured True (и пароль) -> Форма необходима для каждой ссылки, которая имеет пароль -> если пароль правильный (форма действительна) -> password_secured False -> ссылка разблокирована

Шаблон:

 #here just a for loop to display every object of the specific user into the html template
  <a {% if i.password_secured == False %} href="{{i.url}}{% endif %}"></a>
 #for loop end

Простое значение шаблона:

If password secured False -> put the href in the Link(Button)
If password secured True -> Password form must be correct -> set secured secured_password False -> back to 1.

Важные виды Файл:

def LinkView(request, username):
    User = get_user_model()
    custom = User.objects.get(username=username)

    if request.method == 'POST':
        locked_form = LockedFieldForm(request.POST)
        if locked_form.is_valid():

            return redirect('')
    else:
        locked_form = LockedFieldForm()

    return render(request, 'linkview.html', {'custom': custom, 'locked_form': locked_form})

Что мне нужно:

-что нужно написать после: ..form.is_valid() -и даже получить текущий id ссылки, для которой мне нужна форма пароля

Интересно то, что я не могу сохранить/изменить boolean в базе данных (тогда password_secured будет для всех False), но для посетителя, который пытается разблокировать ссылку с паролем. Может ли это работать с save(commit=False), так что это основано на сессии? Но тогда мне также придется изменить шаблон, потому что шаблон проверяет статус в базе данных, а не в сессии

Edit: Вот как выглядит LockedFieldForm

class LockedFieldForm(forms.Form):
    password = forms.CharField(max_length=100)
Вернуться на верх