Я не могу сохранить или инициализировать форму в Django - PullRequest
0 голосов
/ 04 мая 2020

Я хочу заполнить данные формы с помощью URL-адреса GET. Это подробное представление внутри имеет форму

page1.html

<form action="{% url 'home_app:viajes_all' %}" method="get">{% csrf_token %}
    <p>Name: <input type="text" name="FullName" size="40" value={{user.username}} disabled></p>
    <p>Number: <input type="number" name="counter" min="1"  max="10" default=1></p>
    <p>
        <input type="submit" value="Submit">
    </p>
</form>

, это создает URL-адрес с такими параметрами, как: validate /? Csrfmiddlewaretoken = OUANf34UX4lB68tCKffBEE & counter = 6 и другая страница html генерировать форма:

<div>
   <form method="post">{% csrf_token %}
       {{ form.as_p }}
         <button type="submit">Add</button>
   </form>
</div>

Итак, если я хочу сохранить только заполненную форму и y нажмите кнопку «Добавить», и все будет в порядке.

class CreateContact(CreateView):
    model=Prueba
    template_name='userviaje/registerUV.html'
    form_class=ContactForm
    success_url = '/'

    def form_valid(self, form):

        self.object = form.save(commit=False)
        self.object.save()

        return super(CreateContact, self).form_valid(form)

Но если я хочу, то эта форма automati c заполните params в его URL. Мне нужно добавить этот код в свое представление

def get(self, request):
        context ={}
        if self.request.method == 'GET':
            counter= self.request.GET.get('counter', None)

            form = ContactForm( counter=counter, ) 

        return render(request,'userviaje/registerUV.html', {'form':form })

и добавить этот код в форму

def __init__(self, counter, *args, **kwargs):
        super(ContactForm,self).__init__(*args,**kwargs)
        self.fields['counter'].initial=counter

Таким образом, моя форма автоматически заполняется по URL-адресу, но кнопка «Отправить» не работай. Кто-нибудь знает почему?

Возникает ошибка типа: _init __ () отсутствует 1 обязательный позиционный аргумент: 'counter'

, но только при отправке кнопки.
Так или сохраните, или автозаполните , но только один вариант, почему? или что мне нужно изменить?

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