クラスベースのビューを使用しようとしていますが、奇妙なエラーが発生します。私がビューを使用している方法は、通常の方法のようです:
materials/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]
materials/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']
materials/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'),
)
私は得る
AttributeError at /ingredients/new_ingredient
'function' object has no attribute 'as_view'
Django 1.8.5。このビューが機能しないのはなぜですか?ありがとうございます
IngredientCreateView
はクラスでなければなりません。あなたのviews.pyは置き換えます:
def IngredientCreateView(CreateView):
で:
class IngredientCreateView(CreateView):
IngredientCreateView
は関数であり、クラスではありません。
次の行
def IngredientCreateView(CreateView):
に置き換える必要があります
class IngredientCreateView(CreateView):