2017-06-01 9 views
-1

私はジャンゴに新しいMと私はプロジェクトを通してそれを学んでいますがNoReverseMatchは/製品で/ここに/反転なしマッチDjangoのクラスベースのビュー

を作成するには、私のmodels.pyであることを述べていた。このエラーで立ち往生mはファイルは

from django.db import models 
from django.conf import settings 
from django.core.urlresolvers import reverse 
# Create your models here. 
class Category(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, 
          related_name='category_created') 
    name = models.CharField(max_length=200, db_index=True) 
    slug = models.SlugField(max_length=200, db_index=True, unique=True) 

    class Meta: 
     ordering = ('name',) 
     verbose_name = 'category' 
     verbose_name_plural = 'categories' 

    def __str__(self): 
     return self.name 

class Product(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, 
          related_name='product_created', null= True,blank=True) 
    category = models.ForeignKey(Category, related_name='products') 
    name = models.CharField(max_length=200, db_index=True) 
    slug = models.SlugField(max_length=200, db_index=True) 
    image = models.ImageField(upload_to='products/%Y/%m/%d', blank=True) 
    description = models.TextField(blank=True) 
    price = models.DecimalField(max_digits=10, decimal_places=2) 
    stock = models.PositiveIntegerField() 
    available = models.BooleanField(default=True) 
    negiotiable = models.BooleanField(default=True) 
    created = models.DateTimeField(auto_now_add=True) 
    updated = models.DateTimeField(auto_now=True) 
    users_like = models.ManyToManyField(settings.AUTH_USER_MODEL, 
             related_name='product_liked', 
             blank=True) 

    class Meta: 
     ordering = ('name',) 
     index_together = (('id', 'slug'),) 

    def __str__(self): 
     return self.name 
    def get_absolute_url(self): 
     return reverse('products_detail', 
         args=[self.slug]) 

これは私のviews.pyですが、私の見解に何か問題がある場合、私はよく分からない

from django.views.generic import * 
from django.core.urlresolvers import reverse_lazy 
from .models import Category, Product 

class CategoryList(ListView): 
    model = Category 

class CategoryDetail(DetailView): 
    model = Category 

class ProductList(ListView): 
    model = Product 

class ProductDetail(DetailView): 
    model = Product 

class ProductCreate(CreateView): 
    model = Product 
    fields = ["category", 'name', 'image', 'description', 'price', 'stock','available', 'negiotiable'] 

class ProductUpdate(UpdateView): 
    model = Product 
    fields = ['name', 'image', 'description', 'price', 'stock','available', 'negiotiable'] 

class ProductDelete(DeleteView): 
    model = Product 
    success_url = reverse_lazy('product_list') 
+1

traceback_ *と* _yourテンプレートコード_が付いた_fullエラーメッセージを投稿してください。 – Selcuk

+1

あなたのurls.pyも追加できますか? – medullaskyline

答えて

-1

これがトレースバックやurls.pyなしの問題であるかどうかはわかりませんが、Productモデルのsaveメソッドをオーバーライドしてslugフィールドを自動生成する必要があると思います。ここでの注意事項:http://fazle.me/auto-generating-unique-slug-in-django/

それとも、この試みることができる:この方法は、あなたが名前フィールドのためuniquedb_indexを変更する必要がありますことを

class Product(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, 
          related_name='product_created', null= True,blank=True) 
    category = models.ForeignKey(Category, related_name='products') 
    name = models.CharField(max_length=200, unique=True) 
    slug = models.SlugField(max_length=200, unique=True) 
    image = models.ImageField(upload_to='products/%Y/%m/%d', blank=True) 
    description = models.TextField(blank=True) 
    price = models.DecimalField(max_digits=10, decimal_places=2) 
    stock = models.PositiveIntegerField() 
    available = models.BooleanField(default=True) 
    negiotiable = models.BooleanField(default=True) 
    created = models.DateTimeField(auto_now_add=True) 
    updated = models.DateTimeField(auto_now=True) 
    users_like = models.ManyToManyField(settings.AUTH_USER_MODEL, 
             related_name='product_liked', 
             blank=True) 

    class Meta: 
     ordering = ('name',) 
     index_together = (('id', 'slug'),) 

    def __str__(self): 
     return self.name 

    def get_absolute_url(self): 
     return reverse('products_detail', args=[self.slug]) 

    def save(self, *args, **kwargs): 
     self.slug = slugify(self.name) 
     super(Product, self).save(*args, **kwargs) 

注意を。

関連する問題