فرم ها در جنگو فریمورک جنگو
03 Khordad 1401
0 نظر
70 : 3
فرم ها در جنگو

فرم ها در جنگو چه کاربردی دارند و به چه روش هایی ایجا می شوند.

در روت هر اپلیکیشن پروژه جنگویی میتونید یک فایل با نام forms.py ایجاد کنید تا برای اعتبار سنجی اطلاعات، ساخت ویو راحت و سریع، و هندل کردن درخواست ازش بهره بگیرید.

 

 

برای این ابتدا کافیه یک فایل با نام forms.py در روت اپلیکیشن مورد نظر ایجا کنید.

class LoginForm(forms.Form):
    user_name = forms.CharField(
        widget=forms.TextInput(attrs={'placeholder': 'لطفا نام کاربری خود را وارد نمایید'}),
        label='نام کاربری'
    )

    password = forms.CharField(
        widget=forms.PasswordInput(attrs={'placeholder': 'لطفا کلمه عبور خود را وارد نمایید'}),
        label='کلمه ی عبور'
    )

در بالا ما یک فرم که از forms.Form ارث بری می کند ساختیم.

برای استفاده از فرم ها فقط به دو مرحله تغییر نیاز داریم

1-در فایل views.py اگر از ClassBaseView (که تو مقاله بعدی در موردش آموزش میدم) استفاده میکنید فیلد form_class را برابر با نام کلاس فرمی که ساختید قرار بدید مثل مثال ذیل

form_class = AccountLogin

و اگر از فانکشن ها استفاده میکنید با یک نام دلخوام (ترجیحا با کلمه form) خاتمه یابد یک متغیر ایجاد کرده و به شکل ذیل برابر با نام کلاس فرم خود قرار دهید.

login_form = AccountLogin(request.POST or None)

2- به لایه ویو (html) خود رفته و نامی متغیر را با شکل ذیل قرار دهید.

در صورت استفاده از فانکشن

 


    <form action="{% url 'accounts:login' %}" method="post" class="w-50 bg-light p-5 justify-content-center align-items-center">
        {% csrf_token %}


{{ login_form }}
  
   


           <br>
            <button class="btn btn-primary mt-3 w-100 " type="submit">ورود</button>
       </form>

درصورت استفاده از ClassBaseView ها


    <form action="{% url 'accounts:login' %}" method="post" class="w-50 bg-light p-5 justify-content-center align-items-center">
        {% csrf_token %}


{{ form }}
  
   


           <br>
            <button class="btn btn-primary mt-3 w-100 " type="submit">ورود</button>
       </form>

 

 

ارث بری در فرم های جنگو

برای ساخت فرم ها در جنگو میتونیم از دو کلاس Form و یا کلاس ModelForm ارث بری کنیم.

توسعه فرم ها در جنگو با ارث بری از کلاس Form کمی وقت گیر تر از کلاس ModelForm هست و بشخصه ارث بری از کلاس ModelForm رو ترجیح میدم.

 

فیلدر های فرم در جنگو

در جنگو فیلد های زیادی برای فرم ها وجود داره که به توضیح چند مورد از اون ها میپردازیم:

  1. model
  2. fields
  3. widgets
  4. error_messages

توسعه دهنده وب سایت با فریمورک های (اکسپرس جی اس و جنگو) و توسعه دهنده اندروید بصورت نیتیو

ابتدا وارد شوید یا ثبت نام کنید!

برای ثبت نظر، نقد ابتدا باید وارد شوید یا ثبت نام کنید.

Activity Logs

There are 2 new tasks for you in “AirPlus Mobile APp” project:
Added at 4:23 PM by
img
Meeting with customer
Application Design
img
img
A
In Progress
View
Project Delivery Preparation
CRM System Development
img
B
Completed
View
Invitation for crafting engaging designs that speak human workshop
Sent at 4:23 PM by
img
Task #45890merged with #45890in “Ads Pro Admin Dashboard project:
Initiated at 4:23 PM by
img
3 new application design concepts added:
Created at 4:23 PM by
img
New case #67890is assigned to you in Multi-platform Database Design project
Added at 4:23 PM by
Alice Tan
You have received a new order:
Placed at 5:05 AM by
img

Database Backup Process Completed!

Login into Admin Dashboard to make sure the data integrity is OK
Proceed
New order #67890is placed for Workshow Planning & Budget Estimation
Placed at 4:23 PM by
Jimmy Bold
سبد خرید