شما به این ویدیو دسترسی ندارید
شما به این ویدیو دسترسی ندارید
سلام و خسته نباشید
برای اون دوستانی مشکل دارن برای اینکه میخان جیمیل تغییر بدن ولی اگه برای یکی دیگه باشه بازم انجام نشه من اوکیش کردم
تو قسمت ادیت یوزر فرم:
def __init__(self, *args, **kwargs):
self.user = kwargs.get('user')
kwargs.pop('user', None)
super().__init__(*args, **kwargs)
def clean_email(self):
email = selt.cleaned_data['email']
if User.objects.exclude(pk=self.user.pk)filter(email.email).exist():
raise form.ValidationErorr('this email already used')
برای فایل ویوو:تو تابع پست
تو قسمت فرم user=request.user
و دراخر تابع مثل get صفحه ادیت پروفایل رو رندر کنید
ارسال نظر
ما تو مدل یوزر قاعدتا ایمیل تکراری نباید داشته باشیم ولی زمان آپدیت پروفایل میتونیم ایمیل یک یوزر دیگه رو بدون مشکل وارد کنیم که همین باعث ایجاد مشکل در زمان لاگین میشه و چون request رو به فرم ارسال میکنیم امکان validate کردن فیلدها داخل forms.py وجود نداره. برای رفع این مشکل چکار کنیم؟
من حتی داخل views خواستم دستی شرط بزارم ولی درست کار نکرد
ارسال نظر
سلام
مگه مدل خود جنگو پیغام خطا نمیده؟
نه متاسفانه مدل خود جنگو هر ایمیلی رو قبول میکنه(زمان آپدیت پروفایل). من ایمیل های یوزرهای دیگه رو هم که زدم قبول کرد و همین باعث ایجاد خطا موقع لاگین شد
من فقط یه سوال برام پیش اومده
ببینید توی ویوی EditUserView وقتی در آخر فرم رو سیو میکنیم ، جنگو از کجا میفهمه که این فرمی که سیو کردیم مربوط به کدوم یوزره ؟ ما که user رو از طریق request بهش ارسال نکردیم
ارسال نظر
ما داریم از ModelForm استفاده میکنیم و داخل این فرم مشخص کردیم که قراره رو مدل Profile تغییر ایجاد کنه.
داخل مدل Profile هم که به یوزر رابطه داریم.
توی view هم profile کاربر رو با request به فرم ارسال کردیم.
ارسال نظر