python - create_product() missing 1 required positional argument: 'category_id' -


i m trying use related object keep getting error create_product() missing 1 required positional argument: 'category_id' have been trying figure out how fix error here views

def create_product(request, category_id):     form = productform(request.post or none, request.files or none)     category = get_object_or_404(category, pk=category_id)     if form.is_valid():         category_product = category.song_set.all()         s in category_product:             if s.name == form.cleaned_data.get("song_title"):                 context = {                     'category': category,                     'form': form,                     'error_message': 'you added song',                 }                 return render(request, 'shop/product/product_create.html',       context)             product = form.save(commit=false)             product.category = category             product.save()             return render(request, 'music/detail.html', {'category': category})         context = {             'category': category,             'form': form,         }         return render(request, 'shop/product/product_create.html', context) 

i m trying use related object keep getting error create_product() missing 1 required positional argument: 'category_id' have been trying figure out how fix error here views

class category(models.model):     user = models.foreignkey(settings.auth_user_model, related_name='category_created')     name = models.charfield(max_length=500, db_index=true)     slug = models.charfield(max_length=500, blank=true)     images = models.imagefield(upload_to='users/%y/%m/%d', blank=true)      def __str__(self):         return self.name      def save(self, *args, **kwargs):         if not self.slug:             self.slug = slugify(self.name)             super(category, self).save(*args, **kwargs)  class product(models.model):     user = models.foreignkey(settings.auth_user_model, related_name='product')     category = models.foreignkey(category, related_name='products')     name = models.charfield(max_length=500, db_index=true)     slug = models.charfield(max_length=500, blank=true)     images = models.imagefield(upload_to='users/%y/%m/%d', blank=true)     description = models.textfield(blank=true)     price = models.decimalfield(max_digits=10, decimal_places=2)     stock = models.positiveintegerfield(blank=true)     available = models.charfield(max_length=25)     created = models.datetimefield(auto_now_add=true)     updated = models.datetimefield(auto_now=true)      class meta:         ordering = ('name',)     def __str__(self):         return self.name      def save(self, *args, **kwargs):         if not self.slug:             self.slug = slugify(self.name)             super(product, self).save(*args, **kwargs) 

here urls views

from django.conf.urls import url . import views  urlpatterns = [     url(r'^category-create/$', views.category, name='category'),     url(r'^product-create/$', views.create_product, name='create_product'),     url(r'^category-detail/$', views.category_detail, name='category_detail'), ] 

since create_product view contains 2 arguments, need include 2nd 1 - category_id url well.

in urls.py change category_product url to:

url(r'^product-create/(?p<category_id>\d+)$', views.create_product, name='create_product'), 

to make link view template need:

  • <a href= "{% url 'product:create_product' category_id=category.pk %}"> </a>.
  • create "product" namespace in project root urls, including product urls there. this:

    from .product.urls import urlpatterns product_urls
    url(r'^products/', include(product_urls, namespace='product')),


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -