Найти - Пользователи
Полная версия: Значение прописаное в форме.
Начало » Django » Значение прописаное в форме.
1 2
andy_k
Привет, много всего перерыл не могу найти, допустим я загружаю шаблон в нем есть форма которую я хочу загрузить сразу с текстом внутри, тоесть чтобы призкгрузке сразу в поле form.name уже было написано значение name

<p>{{form.name}}{{name}}</p>
andy_k
balalay12
get_form_kwargsDjango set default form valuesСоздание и обработка формы с помощью CBV
Плохо искал значит, спасибо помогли.
andy_k
Такой вопрос, раз уж вы кидали ссылку про CBV, вот клепаю не сложный каталог инет магазин, для товарища ради саморазвития и обучения, смотрел LSF и прочие решение готовые, но решил написать чего-то простого сам.
Вот уже не первый раз сталкиваюсь с вопросов классы или функции в преставлениях? Как то с функциями чтоли нагляднее все получается хоть и больше кода, а в классы не так явно видно что происходит.
Хотелось бы мнение опытных товарищей. В инете мнений много, читал разные статьи.
Не холивара ради.
Спасибо
JOHN_16
CBV подразумевает т.н. generics classes - классы общего назначения. Это означает что отдельные классы делают достаточно общий и явные вещи, но явные не простому прохожему, а кто занимается Django. Т.о. однажды узнав что делает конкретный дженерик, ты всегда будешь знать что он делает, увидев его в чужом коде.
Эти классы были созданы что бы убрать рутинные операции.
svas
Больше кода получается если вам нужно очень специфические операции.
Вместо
def my_form_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # process form data
            return HttpResponseRedirect('/redirecturl')
    else:
        form = MyForm()
    return render(request, 'template.html', {'form': form})
Вы пишите
class MyFormView(FormView):
    form_class = MyForm
    template_name = 'template.html'
    redirecturl = '/redirecturl'
    def form_valid(self, form):
        # process form data
Ну и это ООП. Можете использовать библиотеки и свои разработки, наследоваться от generic views и переопределять только то что вам нужно. Например ответ на ваш вопрос:
class MyFormView(FormView):
    ...
    def get_initial(self):
        return {'name': 'myname'}



andy_k
Спасибо, очень понятно и доступно.
PS: Переделаю свои представления классами, так действительно красивее.
andy_k
Привет, не могу разобраться может кто сталкивался, вместе с get_context_data перестает работать get_initial
и шаблон подгружается с пустым полем в форме, убираю get_context_data() шаблон подгружается с значениями прописаными в полях как и должно быть, подскажите пожалуйста. Мне нужно и передать данные для показа в шаблон и часть полей подгрузить уже заполненными.

class MyFormView(FormView):
    ...
    def get_initial(self):
        return {'name': 'myname'}
    def get_context_data(self):
         ............
        return context
iho
andy_k
Спасибо, очень понятно и доступно.PS: Переделаю свои представления классами, так действительно красивее.
Не правда.
CBV в джанге ето ад.
Не используйте его вообщею и особенно если Ви новичек.
FishHook
iho
Не правда.
Что конкретно неправда? Конкретизируй.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB