استفاده از
به چند دلیل بده!
یکی از این دلایل تصادف نامها یا Name Collisions نام داره.
فرض کن در یک فایل جنگو میخوای هم از فرمها استفاده کنی، هم از مدلها
💥 الان مشکل چیه؟
هم django.forms و هم django.db.models کلاسی به اسم CharField دارن!
چون تو import * کردی، آخرین CharField که وارد شده (models.CharField) جایگزین forms.CharField شده.
نتیجه؟ فرم به جای یک فیلد فرم معمولی، داره یه فیلد مدل استفاده میکنه! 🤯
نسخه صحیح
🔐 اینطوری هم کد خواناتر و ایمنتره، هم هیچ نامی روی دیگری تاثیر نمیذاره
شما چه مشکلات دیگه ای در مورد استفاده از import * سراغ دارید؟ کامنت بذارید 😁
#python
🆔 @CodeBazDev
import *
به چند دلیل بده!
یکی از این دلایل تصادف نامها یا Name Collisions نام داره.
فرض کن در یک فایل جنگو میخوای هم از فرمها استفاده کنی، هم از مدلها
# ANTI-PATTERN ❌
from django.forms import *
from django.db.models import *
class MyForm(Form):
name = CharField()
💥 الان مشکل چیه؟
هم django.forms و هم django.db.models کلاسی به اسم CharField دارن!
چون تو import * کردی، آخرین CharField که وارد شده (models.CharField) جایگزین forms.CharField شده.
نتیجه؟ فرم به جای یک فیلد فرم معمولی، داره یه فیلد مدل استفاده میکنه! 🤯
نسخه صحیح
from django import forms
from django.db import models
class MyForm(forms.Form):
name = forms.CharField()
🔐 اینطوری هم کد خواناتر و ایمنتره، هم هیچ نامی روی دیگری تاثیر نمیذاره
شما چه مشکلات دیگه ای در مورد استفاده از import * سراغ دارید؟ کامنت بذارید 😁
#python
🆔 @CodeBazDev
👍7