11from django .shortcuts import render
22from django .contrib .auth .decorators import login_required
3- from django .views .generic import ListView ,CreateView ,UpdateView ,DetailView
4- from DjangoEcommerceApp .models import Categories ,SubCategories ,CustomUser ,MerchantUser
3+ from django .views .generic import ListView ,CreateView ,UpdateView ,DetailView , View
4+ from DjangoEcommerceApp .models import Categories ,SubCategories ,CustomUser ,MerchantUser , Products , ProductAbout , ProductDetails , ProductMedia , ProductTransaction , ProductTags
55from django .contrib .messages .views import SuccessMessageMixin
66from django .core .files .storage import FileSystemStorage
77from django .contrib .messages .views import messages
88from django .urls import reverse
9- from django .http import HttpResponseRedirect
9+ from django .http import HttpResponseRedirect , HttpResponse
1010from django .db .models import Q
1111
1212@login_required (login_url = "/admin/" )
@@ -183,4 +183,66 @@ def form_valid(self,form):
183183
184184
185185
186+ class ProductView (View ):
187+ def get (self ,request ,* args ,** kwargs ):
188+ categories = Categories .objects .filter (is_active = 1 )
189+ categories_list = []
190+ for category in categories :
191+ sub_category = SubCategories .objects .filter (is_active = 1 ,category_id = category .id )
192+ categories_list .append ({"category" :category ,"sub_category" :sub_category })
193+
194+ merchant_users = MerchantUser .objects .filter (auth_user_id__is_active = True )
195+
196+ return render (request ,"admin_templates/product_create.html" ,{"categories" :categories_list ,"merchant_users" :merchant_users })
197+
198+ def post (self ,request ,* args ,** kwargs ):
199+ product_name = request .POST .get ("product_name" )
200+ brand = request .POST .get ("brand" )
201+ url_slug = request .POST .get ("url_slug" )
202+ sub_category = request .POST .get ("sub_category" )
203+ product_max_price = request .POST .get ("product_max_price" )
204+ product_discount_price = request .POST .get ("product_discount_price" )
205+ product_description = request .POST .get ("product_description" )
206+ added_by_merchant = request .POST .get ("added_by_merchant" )
207+ in_stock_total = request .POST .get ("in_stock_total" )
208+ media_type_list = request .POST .getlist ("media_type[]" )
209+ media_content_list = request .FILES .getlist ("media_content[]" )
210+ title_title_list = request .POST .getlist ("title_title[]" )
211+ title_details_list = request .POST .getlist ("title_details[]" )
212+ about_title_list = request .POST .getlist ("about_title[]" )
213+ product_tags = request .POST .get ("product_tags" )
214+ long_desc = request .POST .get ("long_desc" )
215+
216+ subcat_obj = SubCategories .objects .get (id = sub_category )
217+ merchant_user_obj = MerchantUser .objects .get (id = added_by_merchant )
218+ product = Products (product_name = product_name ,in_stock_total = in_stock_total ,url_slug = url_slug ,brand = brand ,subcategories_id = subcat_obj ,product_description = product_description ,product_max_price = product_max_price ,product_discount_price = product_discount_price ,product_long_description = long_desc ,added_by_merchant = merchant_user_obj )
219+ product .save ()
220+
221+ i = 0
222+ for media_content in media_content_list :
223+ fs = FileSystemStorage ()
224+ filename = fs .save (media_content .name ,media_content )
225+ media_url = fs .url (filename )
226+ product_media = ProductMedia (product_id = product ,media_type = media_type_list [i ],media_content = media_url )
227+ product_media .save ()
228+ i = i + 1
229+
230+ j = 0
231+ for title_title in title_title_list :
232+ product_details = ProductDetails (title = title_title ,title_details = title_details_list [j ],product_id = product )
233+ product_details .save ()
234+ j = j + 1
235+
236+ for about in about_title_list :
237+ product_about = ProductAbout (title = about ,product_id = product )
238+ product_about .save ()
239+
240+ product_tags_list = product_tags .split ("," )
186241
242+ for product_tag in product_tags_list :
243+ product_tag_obj = ProductTags (product_id = product ,title = product_tag )
244+ product_tag_obj .save ()
245+
246+ product_transaction = ProductTransaction (product_id = product ,transaction_type = 1 ,transaction_product_count = in_stock_total ,transaction_description = "Intially Item Added in Stocks" )
247+ product_transaction .save ()
248+ return HttpResponse ("OK" )
0 commit comments