TypeError: as_view() nimmt 1 positions-argument, aber 2 waren gegeben
Ich bekam eine Fehlermeldung und ich bin mir nicht sicher, was es bedeutet:
TypeError at /as_view() takes 1 positional argument but 2 were given
from django.db import models
from django.contrib.auth.models import User
from django.contrib import admin
class Employee(models.Model):
user = models.OneToOneField(User)
full_name = models.CharField(max_length=50)
phone_number = models.CharField(max_length=12)
company = models.CharField(max_length=100)
department = models.CharField(max_length=50)
occupation = models.CharField(max_length=50)
class Meta:
verbose_name_plural = 'employees'
admin.site.register(Employee)
views.py
from django.views.generic import TemplateView
from web_app.models import Employee
class EmployeeTemplateView(TemplateView):
model = Employee.objects.all()
template_name = 'index.html'
context_object_name = 'employee_view'
urls.py
from django.conf.urls import url, include
from web_app import routers
from django.contrib import admin
from . import views
from web_app.views import EmployeeTemplateView
admin.autodiscover()
router = routers.DefaultRouter()
router.register(r'employee', views.EmployeeTemplateView, "Employee")
urlpatterns = ['',
url(r'^$', EmployeeTemplateView.as_view({'emp' : 'employees'})),
]
Was mache ich falsch?
Vielen Dank im Voraus!
- Warum verwenden Sie registrieren Pfade im router, wenn Sie nicht mit Ihnen, später?
Du musst angemeldet sein, um einen Kommentar abzugeben.
as_view
nicht positionale Argumente, es nimmt Schlüsselwort-Argumente.Stellen Sie sicher, dass Sie "as_view()" als solche. Nicht "as_view". Ich habe so einen großen Fehler
Da sieht es aus wie Sie nur versuchen, passieren die
employees
variable aus der view in der Vorlage, können Sie einfach schicken Sie es auf diese Weise:views.py
urls.py
Dann können Sie die
context_object_name
im template etwa so:index.html