Я пытаюсь создать элемент корзины покупок, в котором в подробном представлении о товаре, отображающем информацию о товаре, есть функция добавления в корзину. Мой мыслительный процесс состоял в том, чтобы создать страницу, которая содержит информацию о конкретном c объекте, но также позволяет странице быть представлением CreateView, которое не отображает место для ввода информации, но имеет предварительно заданную информацию об объекте для создания клона объекта. продукт, изменяющий одну переменную для определенного пользователя. Затем этот пользователь может go перейти в личную корзину, где он просто перечисляет все продукты под своим именем пользователя.
Проблема в том, что я не могу объединить эти две вещи вместе, и это явно основано на недостатке способностей (это либо dynamic_lookup_view дает информацию, либо CreateView дает форму, а не обе). Я пытался использовать get_context_data и формы mixins, даже помещая функцию в классе. Некоторое руководство или жемчужина на правильном пути будет принята с благодарностью.
Вот мои views.py
class ProductCreateView(CreateView):
template_name = '../templates/product/product_detail.html'
fields = [
'title',
'description',
'category',
'price',
'summary',
'image',
'user',
]
model = Product
def dynamic_lookup_view(request, id):
obj = get_object_or_404(Product, id=id)
context = {
'obj': obj,
}
return render(request, "product/product_detail.html", context)
Вот мои urls.py
from django.conf import settings
from django.contrib import admin
from django.urls import path, include
from pages.views import home_view
from pages.views import contact_view
from pages.views import profile_view
from pages.views import our_staff_view
from pages.views import about_view
from pages.views import online_view
from pages.views import success_view
from products.views import product_detail_view
from products.views import dynamic_lookup_view
from pages.views import copyright_view
from django.conf.urls.static import static
urlpatterns = [
path('', home_view, name='home'),
path('contact/', contact_view, name='contact'),
path('online/', online_view, name='online'),
path('copyright/', copyright_view, name='copyright'),
path('admin/', admin.site.urls),
path('accounts/', include('accounts.urls')),
path('accounts/', include('django.contrib.auth.urls')),
path('profile/', profile_view, name='profile'),
path('staff/', our_staff_view, name='our_staff'),
path('about/', about_view, name="about"),
path('product/', product_detail_view),
path('product/<int:id>/', dynamic_lookup_view),
path('success/', success_view, name="success"),
]