2015-12-11 44 views
6

クラスベースのビューを使用しようとしていて、奇妙なエラーが発生しています。'function'オブジェクトには 'as_view'属性がありません

成分/ models.py:

from django.db import models 
from django.utils import timezone 


class Ingredient(models.Model): 
    name  = models.CharField(max_length=255) 
    description = models.TextField() 

    def get_prices(): 
     purchases = self.purchase_set.all() 
     prices  = [purchase.price for purchase in purchases] 

成分/ views.py:

from django.shortcuts   import render, render_to_response, redirect 
from django.http    import HttpResponse, HttpResponseRedirect 
from django.views.generic.edit import CreateView 
from .models     import Ingredient, Purchase 

def IngredientCreateView(CreateView): 
    model = Ingredient 
    fields = ['all'] 

成分/ urls.py私はビューを使用している方法は、通常の方法であると思われます:

from django.conf.urls import patterns, include, url 

from ingredients.views import IngredientCreateView 

urlpatterns = patterns('',    
    url(r'^new_ingredient$',   IngredientCreateView.as_view(),    name='new-ingredient'), 
) 

私は

を取得します

私はdjango 1.8.5です。なぜこのビューは機能しませんか?ありがとうございます

答えて

14

IngredientCreateViewはクラスする必要があります。 だからあなたのviews.pyに置き換える:

def IngredientCreateView(CreateView): 

をして:

class IngredientCreateView(CreateView): 
3

IngredientCreateViewは機能ではなく、クラスです。

次の行

def IngredientCreateView(CreateView): 

class IngredientCreateView(CreateView): 
+1

と交換する必要があり、その第一号だったIDKのが、ありがとうございました。古い習慣は、ハードに死ぬ、クラスのビューに慣れなければならない:) – codyc4321

関連する問題