web-dev-qa-db-de.com

Das Objekt 'function' hat kein Attribut 'as_view'.

Ich versuche, klassenbasierte Ansichten zu verwenden und erhalte einen seltsamen Fehler. Die Art und Weise, wie ich die Ansicht verwende, scheint normal zu sein:

zutaten/modelle.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]

zutaten/ansichten.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']

zutaten/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'),
)

Ich bekomme

AttributeError at /ingredients/new_ingredient
'function' object has no attribute 'as_view'

Ich bin auf Django 1.8.5. Warum funktioniert diese Ansicht nicht? Danke

20
codyc4321

IngredientCreateView sollte eine Klasse sein. Also ersetzen Sie Ihre views.py:

def IngredientCreateView(CreateView):

mit:

class IngredientCreateView(CreateView):
26
Anush Devendra

IngredientCreateView ist eine Funktion, keine Klasse.

Die folgende Zeile

def IngredientCreateView(CreateView):

sollte ersetzt werden durch

class IngredientCreateView(CreateView):
6
falsetru

Überprüfen Sie zusätzlich zu dem, was hier bereits gesagt wurde, den Dateinamen und den Klassennamen. Wenn dieser identisch ist, müssen Sie die Klasse möglicherweise ordnungsgemäß importieren.

File name /api/A.py

class A:
//some methods

In deiner Hauptklasse

//App main class
from api.A import A
0
Shirish Singh