🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ امیرحسین دربندی
دریافت request.user برای بدست اوردن ادرس‌های کاربر تو لیست ادرس ها
جامعه پایتون (وب) ایجاد شده در ۲۵ مهر ۱۴۰۱

با سلام من مدنظر داشتم بعد از ثبت اطلاعات shipping صفحه بعدی یه فرم داشته باشیم تا کاربر لاگین شده بتونه یکی از آدرس هایی که ثبت کرده رو انتخاب کنه و متاسفانه خیلی به بن بست خوردم و حدود دو روزه همه جوره باهاش کلنجا رفتم و سناریو‌های مختلفی رو امتحان کردم و سایت‌های داخلی و خارجی زیادی رو گشتم ولی هنوز به نتیجه نرسیدم شاید حتی یه اشتباه ساده و پیش پا افتاده ست ممنون میشم راهنمایی کنید

این فرم هستش که طبق مدل‌های خود استاد طراحی شده , اینجا init رو بازنویسی کردم

class listForm(forms.Form):
    user = None
    address = forms.ModelChoiceField(queryset=shipping.objects.filter(user=user))
    def __init__(self, user, *args, **kwargs):
        self.user = user
        super().__init__(*args, **kwargs)

و این هم view البته فعلا به اونجاش مرسیدم که کاربر بخواد آدرس رو انتخاب کنه و متدش POST باشه پس کد ساده ست

@login_required
@require_GET
def address_list(request):
    form = listForm(request.user)
    return render(request, 'address_list.html', {"form": form})

سناریو‌های مختلفی رو امتحان کردم مثلا بدون بازنویسی init بدین صورت

@login_required
@require_GET
def address_list(request):
    form = listForm()
    form.user = request.user
    return render(request, 'address_list.html', {"form": form})

ولی خب باز آدرس‌های کاربر رو نمایش نمیده تست کردم request.user و غیره رو مشکل از اونا نیست

سلاااااام امیرحسین . . .

کد نیاز به دیباگ داره . اگر مشکلت هنوز حل نشده ارسال کن در فرصت مناسب بررسیش میکنم. . .


موفق باشی ?

Reza Mobaraki ۳۰ مهر ۱۴۰۱، ۰۷:۲۵