Установите значение поля в форме __init__ function - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь найти эффективный способ установки значения поля в методе form init . Мои модели аналогичны приведенным ниже

class Users(models.Model):
    firstname = models.CharField()
    lastname = models.CharField()

class profile(models.model):
    user = models.ForeignKey(Users, on_delete=models.PROTECT)

class logindetails(models.model):
    user = models.ForeignKey(Users, on_delete=models.PROTECT)
    profile = models.ForeignKey(profile, on_delete=models.PROTECT)
    login_time = models.DateField(auto_now=True)

Моя форма выглядит так, как показано ниже:

class LoginForm(forms.ModelForm):
    class Meta:
            model = logindetails
            fields = [__all__]

    def __init__(self, *args, **kwargs):
        self._rowid = kwargs.pop('rowid', None)
        super(LoginForm, self).__init__(*args, **kwargs)

        instance = profile.objects.get(id=self._rowid)
        self.fields['user'] = instance.user  <--- Facing difficulties here

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 28 мая 2020

Django имел встроенные способы установки начальных значений формы, документация доступна здесь: https://docs.djangoproject.com/en/3.0/ref/forms/api/#dynamic -initial-values ​​

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