Mohssen A Mohssen نشر 3 يناير 2022 أرسل تقرير نشر 3 يناير 2022 أحاول أن أقوم بعمل صنف Class-based view ولدي نموذج باسم Product بالشكل التالي: class Product(models.Model): number = models.CharField(max_length=50) provider = models.ForeignKey(Provider, on_delete=models.CASCADE) description = models.CharField(max_length=2000, default='SOME CONTENT HERE') def __str__(self): return "Product #" + self.number + " of " + self.provider.number لذلك قمت بإنشاء الصنف التالي: class Product(View): model = Product def get(self, request, resource_id): resource = get_object_or_404(Product, pk=resource_id) context = { 'resource': resource } return render(request, 'product.html', context) وهذا المسار path الخاص به: path('provider/resource/<int:resource_id>', Product.as_view(), name='resource'), لكن لسبب ما أحصل على الخطأ التالي: Exception Type: TypeError at /provider/resource/33 Exception Value: Product.get() got an unexpected keyword argument 'pk' ما سبب هذا الخطأ وكيف أقوم بحله؟ 1 اقتباس
1 Mohammad Al Eik نشر 3 يناير 2022 أرسل تقرير نشر 3 يناير 2022 سبب المشكلة لديك هو مشكلة تضارب لأنك تقوم بتسمية كلاس ال view بنفس اسم ال Model وهذا يؤدي إلى إستخدام كلاس ال view بدلاً عن كلاس model لذلك عليك أختيار اسم اخر مثل ProductView class ProductView(View): model = Product def get(self, request, resource_id): resource = get_object_or_404(Product, pk=resource_id) context = { 'resource': resource } return render(request, 'product.html', context) 1 اقتباس
السؤال
Mohssen A Mohssen
أحاول أن أقوم بعمل صنف Class-based view ولدي نموذج باسم Product بالشكل التالي:
لذلك قمت بإنشاء الصنف التالي:
وهذا المسار path الخاص به:
لكن لسبب ما أحصل على الخطأ التالي:
ما سبب هذا الخطأ وكيف أقوم بحله؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.