2015-04-01 2 views
1

У меня есть объект формы регистрации, который я использую для создания страницы регистрации. Теперь я пытаюсь добавить гостевую функцию пользователя в приложение. поэтому я хочу автоматически создать учетную запись пользователя, когда пользователь посещает страницу. Я пытаюсь создать объект формы в бэкэнд, заполнить его и вызвать метод сохранения явно. но я не мог найти способ заполнить поля из бэкэнд. Как я могу это достичь?создать объект формы django и сохранить его

+0

Откуда вы собираете данные для заполнения формы? – devinformatics

+0

есть абсолютно три поля в форме. name, phone_number и электронной почты, я генерирую некоторые значения заполнителя для заполнения формы. У меня есть данные со мной. как я могу его заполнить? – Sudhakar

ответ

2

Если вы хотите создать экземпляр модели (в данном случае User) в представлении данных, которые не поступают из некоторых данных POST или GET, тогда не используйте формы, а скорее API-интерфейс модели.

для экземпляра User класс предоставляет эту вспомогательную функцию (пример, взятый из документации):

from django.contrib.auth.models import User 

user = User.objects.create_user('john', '[email protected]', 'johnpassword') 

Подробнее здесь: https://docs.djangoproject.com/en/1.7/topics/auth/default/#user-objects

и здесь: https://docs.djangoproject.com/en/1.7/ref/contrib/auth/#django.contrib.auth.models.UserManager.create_user

Это работает для любой модельный класс. Вы можете использовать это, чтобы создать своего гостевого пользователя динамически, если вы не знаете клиента, в то время как вы будете входить в него в противном случае.

Часть, когда вы решаете, знаете ли вы о клиенте или нет, на самом деле интересна, но я думаю, что это вне сферы действия этого вопроса.

0

Если я понимаю, чего вы пытаетесь достичь, вы можете создать словарь form_data, а затем создать экземпляр формы, проходящей в dict.

form_data = { "key1": val1, "key2": val2, "key3": val3} 
form = MyForm(data=form_data) 

Вы можете сделать это в методе form_valid(), если используете представления на основе классов.

Смежные вопросы