Py学习  »  DjangoApp

请教下大家一个DJANGO问题:TypeError: 'type' object is not iterable

745612798 • 7 年前 • 3710 次点击  

图片中是相关部分的代码 -----models.py------

from __future__ import unicode_literals

import datetime
from django.db import models
from django.contrib.auth.models import User
from django.utils.encoding import python_2_unicode_compatible
from django.utils import timezone
from django.contrib.auth.models import AbstractUser

@python_2_unicode_compatible
class NewUser(AbstractUser):    

        def __str__(self):
                return self.username

@python_2_unicode_compatible
class StudentUser(models.Model):
        user = models.ForeignKey('NewUser', null=True)
        student_no = models.CharField('student_no', max_length=10)
        student_class = models.CharField('student_class', max_length=8)
        teacher_major = models.TextField('student_major', default='')

        def __str__(self):
                return self.username

@python_2_unicode_compatible
class TeacherUser(models.Model):
        user = models.ForeignKey('NewUser', null=True)
        employee_no = models.CharField('employee_no', max_length=10)
        teacher_major = models.TextField('teacher_major', default='')

        def __str__(self):
                return self.username

class CourseManager(models.Manager):
        def query_by_time(self):
                query = self.get_queryset().order_by('pub_date')
                return query

        def query_by_category(self, category):
                query = self.get_queryset().order_by('category')
                return query

        def query_by_keyword(self, keyword):
                query = self.get_queryset().filter(title__contains=keyword)
                return query

        def query_by_thumbup(self, thumbup):
                query = self.get_queryset().order_by('thumbup')
                return query


@python_2_unicode_compatible
class Course(models.Manager):
        course_id = models.IntegerField(default=0)
        course_name = models.TextField('course_name', default='')
        course_intro = models.TextField('course_intro', default='')
        thumbup = models.IntegerField(default=0)
        pub_date = models.DateField('date published')
        dead_line = models.DateField('deadline published')
        category = models.CharField(max_length=100)

        def was_published_recently


    
(self):
                now = timezone.now()
                return now - datetime.timedelta(days=1) <= self.pub_date <= now
        was_published_recently.admin_order_field = 'pub_date'
        was_published_recently.boolean = True
        was_published_recently.short_description = 'Was published recently?'

        def __str__(self):
                return self.course_name

        objects = CourseManager()

-----views.py--------

from django.shortcuts import render
from django.http import HttpResponse
def index(request):
    return HttpResponse("test.")

---admin.py----

from django.contrib import admin
from .models import StudentUser, TeacherUser, Course

class CourseAdmin(admin.ModelAdmin):
        fieldsets = [
                ('Primary Key',               {'fields': ['course_id'],'classes': ['collapse']}),
                ('Course Name', {'fields': ['course_name'],'classes': ['collapse']}),
                ('Date information', {'fields': ['pub_date'],'classes': ['collapse']}),
        ]
        list_display = ('course_id','course_name', 'category', 'pub_date', 'dead_line', 'was published recently')
        list_filter = ['pub_date']
        search_fields = ['course_name']
-----forms.py-----
[code]from django import forms

class LoginForm(forms.Form):
        uid = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control' ,'id':'uid', 'placeholder': '用户名'}))
        pwd = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control' ,'id':'pwd', 'placeholder': '密码'}))

class RegisterForm(forms.Form):
        username = forms.CharField(label='username', max_length=100,
                widget=forms.TextInput(attrs={'id':'username','onblur':'authentication()'}))
        email = forms.EmailField()
        password1 = forms.CharField(widget=forms.PasswordInput)
        password2 = forms.CharField(widget=forms.PasswordInput)

class SetIntoForm(forms.Form):
        username = forms.CharField()

class CommentForm(forms.Form):
        comment = forms


    
.CharField(label='', widget=forms.Textarea(attrs={'cols':'60', 'rows':'6'}))
admin.site.register(Course,CourseAdmin)

错误报告: Unhandled exception in thread started by <function wrapper at 0x0000000005B23B38> Traceback (most recent call last): File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper fn(*args, kwargs) File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 113, in inner_run autoreload.raise_last_exception() File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 249, in raise_last_exception six.reraise(_exception) File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper fn(args, kwargs) File "C:\Python27\lib\site-packages\django__init.py", line 27, in setup apps.populate(settings.INSTALLED_APPS) File "C:\Python27\lib\site-packages\django\apps\registry.py", line 115, in populate app_config.ready() File "C:\Python27\lib\site-packages\django\contrib\admin\apps.py", line 23, in ready self.module.autodiscover() File "C:\Python27\lib\site-packages\django\contrib\admin__init.py", line 26, in autodiscover autodiscover_modules('admin', register_to=site) File "C:\Python27\lib\site-packages\django\utils\module_loading.py", line 50, in autodiscover_modules import_module('%s.%s' % (app_config.name, module_to_search)) File "C:\Python27\lib\importlib__init.py", line 37, in import_module import__(name) File "C:\wamp64\www\myFiles\titcoder3\course\admin.py", line 16, in <module> admin.site.register(Course,CourseAdmin) File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py", line 86, in register for model in model_or_iterable: TypeError: 'type' object is not iterable

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1702
 
3710 次点击