شما به این ویدیو دسترسی ندارید
شما به این ویدیو دسترسی ندارید
سلام چند تا سوال داشتم
اینجا تمپلت های فرم هامون شبیه هم هست میشه یکی ساخت برای همه
بعد ما توی اپدیت گفتیم باید حتما لاگین کرده باشه چرا بازم شرط میزاریم اگه ایدی هاشون برابر هم باشه؟
ارسال نظر
سلام
۱. بله، میشه
۲. چون ممکنه کاربر به شکل دستی درخواست ارسال کنه و پست یک نفر دیگه رو آپدیت کنه
توی update قسمت 21 متد get رو ارورو میده
PostUpdateView.get() takes 3 positional arguments but 4 were given
متوجه مشکل نمیشم
ارسال نظر
سلام
احتمالا آرگومان اضافی به تابع get فرستادید. اگر مشکلتون حل نشد، از کدتون عکس بگیرید و برام بفرستید
خسته نباشید
واقعا طرز بیانتون عالیه
چون دوره قبلی دیده بودم متد get و post از حفظ نوشتم
بسیار ممنون
ارسال نظر
سلام استاد
استاد من برای post هام فیلد type رو گذاشتم که یک سری choices داره(text,video,image) و کاربر موقع پست کردن فقط یکی از این ها رو میتونه انتخاب کنه.
حالا برای update پست من چطور میتونم شرطی بزارم که مثلا اگر 'post.type = 'video بود دیگه توی forms.py همه فیلد های video,image,text رو نزاره که کاربر تغییر بده فقط video input رو براش بیاره
با تشکر
ارسال نظر
البته این مشکل slugify فقط برای متون فارسی هست و برای انگلیسی همه چی اوکی.
راهی برای حل این مشکل برای حروف فارسی نیست.
ارسال نظر
سلام.
برای آیدیت کردن پست ها توی کد زیر:
def post(self, request, **kwargs):
form = self.form_class(request.POST, instance=self.post_instance)
if form.is_valid():
new_form = form.save(commit=False)
title = form.cleaned_data['title']
new_form.slug = slugify(title)
new_form.save()
messages.success(request, 'post updated' , 'success')
return redirect('Account:profile', request.user.id)
else:
return render(request, self.template_class, {'form': form})
اما برای اسلاگ ها اگه title توی فرم ها کاملا حذف نکنیم و مجددا ننویسم توی دیتابیس نال دخیره می کنه یا حتی اگه
به جملات قبلی موارد جدید اضافه کنیم، فقط موارد جدید را ذخیره میکنه و کلا موارد قبلی را ذخیره نمی کنه.
دلیلش چی؟
ارسال نظر
سلام
من ویو اضافه کردن کامنت جدا نوشتم ولی تو قسمت url مشکل دارم.
وقتی که path مربوط به اضافه کردن کامنت رو زیر همه یو ار ال ها قرار میدم به بقیه ویو ها گیر میده ولی وقتی این path رو بالا همه path ها قرار میدم درست کار میکنه چی کار باید کرد؟
ارسال نظر
به نظر میرسه urlهات خیلی شبیه به هم هستند و جنگو نمیتونه بینشون تفاوتی ببینه
با سلام و عرض ادب
بنظرم در قسمت ویو(def post_detail) بعد از این که فرم رو اعتبار سنجی کردیم باید redirect رو هم قرار بدیم. (چرا؟) چون وقتی که کامنت رو مینویسیم و ارسال میکنیم اگر صفحه رو رفرش کنیم ، کامنت همینطور تکرار میشه.
ارسال نظر
سلام
بله. اینطوری هم میشه.
متاسفانه اونموقع که این دورهها رو ضبط میکردم، تحت فشار بودم و بعضی اوقات باگهای عجیبی دارند برنامههام.
خیلی متاسفم
درود ، ببخشید جسارت میکنم ، ولی فکنم باید برای کامنت گذاشتن ، باید شرط زیر باشد ،
if request.method == 'POST' and request.user.is_authenticated :
چون اگه اینو نزاریم ، و صفحه رو با متد post درخواست کنیم و لاگین نباشیم ، error میگیریم
ارسال نظر
ارسال نظر