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
Post a Comment